sakuraeditor

【初心者向け】正規表現を使って効率化したい

はじめに

・正規表現って何?
・正規表現を使えるようになりたい。

という人向けの内容です。

進め方としては、正規表現について解説した上で例題を解いてもらう、という方法にしたいと思います。

ふくろーおじさん
ふくろーおじさん
それではいきましょう。

正規表現とは

正規表現とは条件を表現したものというイメージになります。

正規表現で検索した場合は条件が一致したものが検索されます。
例えば「都道府県名で山のつく県を検索したい」という感じですね。

正規表現では覚える事がたくさんありますが使いながら覚えていけばいいかな、と思います。

【前の文字を繰り返すもの】
*:直前の文字を0回以上繰り返す
+:直前の文字を1回以上繰り返す

【文字を表す】
.:任意の1字
?:直前の文字が0or1回
^:行頭
$:行末

大事:正規表現でつかう記号と同じものを検索したい場合、正規表現の記号ではないよ、とわかるように書く必要があります。
書き方としては\を前に付与します。

例えば
/* というC言語コメントを検索したい場合は、\/\*と書く事で、正規表現の/や*ではないよ、と区別でき、検索できるようになります。

以下例題を作ったのでテキストファイルにコピーして実施してみてください。
(エディタはサクラエディタなどの正規表現検索ができるものとしてください。)

都道府県リスト

北海道
青森県
岩手県
宮城県
秋田県
山形県
福島県
茨城県
栃木県
群馬県
埼玉県
千葉県
東京都
神奈川県
新潟県
富山県
石川県
福井県
山梨県
長野県
岐阜県
静岡県
愛知県
三重県
滋賀県
京都府
大阪府
兵庫県
奈良県
和歌山県
鳥取県
島根県
岡山県
広島県
山口県
徳島県
香川県
愛媛県
高知県
福岡県
佐賀県
長崎県
熊本県
大分県
宮崎県
鹿児島県
沖縄県

実践タイム

  • Question.1
    県を探そう
    ふくろーおじさん
    ふくろーおじさん
    じゃぁ、実践だよ、県がつく県を探してね。
    くまごろう
    くまごろう
    う~ん


  • Answer.1
    県を探そう
    ふくろーおじさん
    ふくろーおじさん
    答えは、.+県 だね。答えは1つではないけどこれが一番シンプルかな。
    ふくろーおじさん
    ふくろーおじさん
    考え方としては、県って付くのは最後だけだよね。という事で、県の前に文字が1文字以上続くものを選ぶようにしたよ。
    県のみの可能性がある場合は0回でもいいので.*県でもいいね。
  • Question.2
    山の付く県を探そう
    ふくろーおじさん
    ふくろーおじさん
    次は山がつく県を探してね。
    くまごろう
    くまごろう
    むむむ、、、
  • Answer.2
    山の付く県を探そう
    ふくろーおじさん
    ふくろーおじさん
    答えは、山.*県だね。
    ふくろーおじさん
    ふくろーおじさん
    考え方としては、
    山の後ろに県が付く県がありそう→山.*県
    例題1と違って*を+にしてしまうと〇山県が検索できなくなってしまうので注意だね。
    ふくろーおじさん
    ふくろーおじさん
    上記のような都道府県のみのリストになっている場合は上記で問題ないけど、
    例えば文脈に”山の付く県”という記載があった場合、それも抽出してしまうんだ。
    どういう文面のものかを把握し、条件として追加する事が必要だから気を付けてね。
    例えば県をきちっと検出したい場合は、.*山.*県にするといいんだけど、意図しないものを抽出してしまう可能性があるから注意してね。

補足

正規表現は一般的なものですので、登場箇所が多いです。
例えば
・WinMergeのフォルダフィルター(ファイルフィルター)で正規表現を用いてフィルターしている。
・サクラエディタの検索で正規表現検索ができる。
・サクラエディタのカラー設定で正規表現で一致したもののみ別カラー設定にすることができる。

等です。

以下もご覧頂けると嬉しいです。
【初心者向け】WinMergeのフィルターを使おう
【初心者向け】サクラエディタのおすすめ設定を公開します

さいごに

いかがでしたでしょうか。
行頭や行末は使わない例題を出してしまいましたが色々と実施して頂くと良いのかな、と思います。

以上参考になればうれしいです。

最後までお読みいただき、ありがとうございました。