【サクラエディタ】正規表現(曖昧も含む)検索と置換

サクラエディタ

えっ?正規表現?何を正規に表現するんでしょうね。

これを知っているか知っていないかで仕事の効率が何倍も違ってきますよ!

この記事で勉強して、他の人にドヤ顔で教えてあげましょう(笑)

 
 

スポンサーリンク

正規表現ってなにさ?

正規表現とは、ある文字列を検索するため、特殊な書き方によってパターンマッチングが行える記述方法です。

日本語で説明頼むで

はい、全く言っていること分かりませんよね(笑)

百聞は一見に如かず、以下で例を交えてどんなものか確認してみましょう。

 

以下のように、文字列内に数字がところどころ含まれているデータがあったとします。

このデータの中から数字だけ検索したい!

といった場合に検索機能で”0″を検索、”1″を検索… といった泥臭い作業をせずとも正規表現であれば

一発(1回の検索)で全てをヒットさせることが可能です。

 

それが以下の検索条件となります。

まず、正規表現のチェックボックスに✔が必要です。

正規表現に✔していない場合、普通の検索となるので注意してください。

 

条件に”[12345]”と記載があります。これが正規表現で記載されている検索条件です。

通常の検索条件であれば、”[12345]”に完全一致する文字列が検索されるのですが、

正規表現の検索条件だと “1” or “2” or “3” or “4” or “5” のどれかに一致するものという条件となります。

 

つまり、正規表現では中括弧(“[]”)で括るということは、

“括弧内のどれか1文字に一致するもの”という意味になるんですね

分かったような、分からんような…

では、この条件で検索してみましょう。

数字の部分のみ検索にヒットした状態になっています。

これが正規表現というものになります。(あくまで一部の機能ですけどね)

具体的な使い方は、次章から見て頂ければと思います。

困りごと

この記事で以下のことが解決します。

  • 特定の単語にナンバリングしたものを検索したい
  • 改行の手前に文字列を挿入したい

解消方法

サクラエディタの検索機能にて正規表現というオプションを使用することで解消できます。

 

使用方法は以下の通りです。

  • サクラエディタのメニュー「検索」-「検索」で検索ウィンドウが起動 (Ctrlキー + Fキー 押下と同等)
  • サクラエディタのメニュー「検索」-「置換」で置換ウィンドウが起動 (Ctrlキー + Rキー 押下と同等)

         ⇒検索ウィンドウで”正規表現~”のチェックボックスに✔を付ける

サクラエディタでは、検索、置換、Grep検索、Grep置換で正規表現が使用可能です。

各ケースの対応方法

特定の単語にナンバリングしたものを検索したい

 以下のデータ内の「hoge」という文字列に番号が付いたものを検索する場合です。

検索ウィンドウで以下を設定し、検索してみましょう。

検索結果は以下のようになります。

“hoge”+数字 の組み合わせの文字列がヒットしています。

3行目の”hoge”という文字だけのがヒットしていないやん!

間違ってんで!

この正規表現は“hoge”+数字のものだけがヒットするという指定なので、この結果で正しいです。

つまり、”hoge”という文字列だけはヒットしません。

 操作詳細としては、

  1. 検索ウィンドウを起動
  2. 条件に”hoge[0-9]”と入力
  3. 正規表現に✔を付ける
  4. 「上検索」「下検索」「該当行マーク」のいずれかのボタン押下
といった操作を行っています。
 
正規表現としては、
  • 中括弧(“[]”)で括った場合は、その中の文字のどれかにヒット
  • 中括弧(“[]”)内でハイフォン(“-“)を使用した場合は、範囲で指定という表現

⇒今回の例だと、”[0-9]”なので”[0123456789]”という指定と同等

    数字以外にも文字列で”[a-z]”といった指定も可能

改行の手前に文字列を挿入したい

 以下のデータ内の改行(“↵”)の手前に”piyo”という文字列を入れる場合です。

 置換ウィンドウで以下を設定し、置換してみましょう。

置換結果は以下のようになります。

改行の前に”piyo”が挿入できました。

操作詳細としては、

  1. 置換ウィンドウを起動
  2. 置換前に”\r\n”と入力
  3. 置換後に”piyo\r\n”と入力
  4. 正規表現に✔を付ける
  5. 範囲は”ファイル全体”に設定
  6. 「すべて置換」ボタン押下
といった操作を行っています。
 
正規表現としては、
  • 改行は”\r\n”で表現される

⇒”\r”はCR、”\n”はLFを表現

まとめ

  • 正規表現で曖昧な条件で検索することが可能
  • 正規表現で置換することも可能

正規表現については、ヘルプにて確認することができます。

キーワードで”正規表現”と入力してください。

コメント メアドは任意