前置き
現在社会人4年目の筆者が業務で超超使っているサクラエディタの正規表現を正規表現初心者向けにまとめた記事。初心者向けなので難しい(否定先読みとか)ものに関しては除外している。
サクラエディタを使用している方は業務効率化にとっても役立つ。
※サクラエディタ向けなので各種プログラミング言語や別ソフトでは文法は異なることがあることに注意。
基本文法
- 「.」・・・任意の一文字を表す。
- 「^」・・・行頭を表す。
- 「$」・・・行末を表す。
- 「+」・・・直前の文字の1文字以上の繰り返しを表す。
- 「*」・・・直前の文字の0文字以上の繰り返しを表す。
- 「{数値}」・・・直前の文字の数値個の繰り返しを表す。
- 「{数値1,数値2}」・・・直前の文字の数値1個以上数値2個以下の繰り返しを表す。
- 「¥r」・・・改行コードCRを表す。
- 「¥n」・・・改行コードLFを表す。
- 「¥r¥n」・・・改行コードCRLFを表す。
- 「¥t」・・・タブを表す。
使用例
検索
"b"が6つ続いている箇所を検索
b{6}
"error"という文字を含む行を検索
^.*error.*$
置換
空行を削除
置換前:「^¥r¥n」
置換後:「」
csvをtsvに変換
置換前:「,」
置換後:「¥t」
行末に「,」を挿入
置換前:「$」
置換後:「,」
応用例
- 置換元の文字列を使用したいとき
→()を用いる。置換元の文字列を()で囲むと、置換後の文字列の指定時に「\$数値」で指定が可能。\$の次の数値は1,2,・・・と置換元の文字列で用いた()の出てくる順番に依存。
例:「2018/09」という文字列を「09/2019」にしたいとき
「2018/09」という文字列を「09/2019」にしたいとき
置換前:「(2018)/(09)」
置換後:「$2/$1」
「2018/09」という文字列を「09/2019」にしたいとき(汎用例)
置換前:「(.+)/(.+)」
置換後:「$2/$1」
- 最短一致
→「2019/10/02」を、「^.+/」で検索すると「2019/10/」がヒットする。
もし「2019/」をヒットさせたいときは「?」を用いる。
最短一致
^.+?/
- 最短一致・置換元文字列使用の応用例
→「顧客:日付:従業員:予約番号」という文字列を「('顧客','日付','従業員','予約番号')」という文字列に整形する
最短一致応用例
置換前:「(.+?):(.+?):(.+?):(.+)」
置換後:「('$1','$2','$3','$4')」
まとめ
結構便利では?否定とかアルファベットの大文字・小文字変換もできたりするので調べて使用してみると楽しいかも。キーマクロとの組み合わせもアリ。
良いサクラエディタライフを!