2013年1月23日水曜日

秀丸エディタ、正規表現の使い方


秀丸エディタは昔から使っているメインエディタ。正規表現を使用することで、複雑な検索・置換・配列による編集などを行うことができ、仕事上非常に役に立っている。

正規表現は、検索や置換画面で、「正規表現」のチェックボックスを有効することで使用できる。

正規表現


ここでは全て説明できないが、よく使用する記号や一例を紹介しよう。


正規表現記号


記法内容使用例説明
.任意の文字
.+任意の文字列
+直前の文字1回以上の繰り返し
直前の文字0回以上の繰り返し
^行頭
$行末
?直前の文字0回か1回出現箇所を検索
[][1-8]1~8を検索
[A-Z]A~Zを検索
[開始文字-終了文字]文字コード順で検索する
[@%$&][]内のいずれかの文字を検索
[^]否定
[^abc]a、b、cでない文字を検索する
OR
()検索パターンのグループ化
</?(HTML|BODY|FONT)>
{}繰り返し指定
[0-9]{4}4桁の数字
.{15}.を15回繰り返す
{3,}.3回以上
{3,5}.3回以上、5回以下



エスケープ・キャラクタ


記法内容説明
\<単語の先頭を検索
\>単語の末尾を検索
\w1つの単語を検索
\tタブ
\n改行
\zEOFを検索
\fタグ付き正規表現\0で順に文字列を取り出す




上記の正規表現記号やエスケープキャラクタを組み合わせることで、さまざまな処理が可能となる。

下記は自分がよく使用する一例である。


正規表現の使用例

正規表現検索値
[0-9.,\+-]金額を検索
[0-9][0-9]?/[0-9][0-9]?/[0-9][0-9]0/0/0~99/99/99
</?(HTML|BODY|FONT)>
\.[A-Za-z0-9]{1,4}拡張子を検索
<.+><>で囲まれた一文字以上の文字列
^.*文字列.*\nある文字列が含まれた行を検索
^\n空白行を検索
\Aで始まる英単語を検索
S\>Sで終わる英単語を検索




CSVデータで列の入替え(列の抜出し)

下記は5列のCSVデータを入れ替える一例

  • 検索
    • ^(([^,]?)*),(([^,]?)*),(([^,]?)*),(([^,]?)*),((.?)*)$
  • 置換
    • \1,\3,\2,\4,\5
      (2列目と3列目を入替える場合)
    • \3,\4,\5
      (3~5列目を抜出したい場合)



日付書式の変更、yyyy/mm/ddをyyyy年yy月yy日に置換


  • 検索
    • ([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})
  • 置換
    • \1年\2月\3日



変数の一括宣言


  • あらかじめ変数名を1行ごとに入力
    hensu1
    hensu2
    hensu3
  • 検索
    • ^(.*)$
  • 置換
    • $\1\t= $_POST['\1'];