導入
このコースで学んだ道具を振り返り、これから正規表現と上手につきあうためのコツを整理します。
説明
学んだ要素を一覧にすると、正規表現は少数の部品の組み合わせだと分かります。
- 文字の指定:ふつうの文字 /
.(任意1文字)/[abc](文字クラス)/[^abc](否定)/\d \w \s(定義済み) - 繰り返し:
*(0以上)/+(1以上)/?(0か1)/{n,m}(回数指定)/*?(控えめ) - 位置:
^ $(行頭・行末)/\b(単語境界) - まとまりと選択:
( )(グループ・キャプチャ)/(?: )(非キャプチャ)/|(または) - 活用:
$1(後方参照・置換)/i m s g(フラグ)
上手に使うためのコツは3つです。
- 少しずつ組み立てて確かめる ―― いきなり長いパターンを書かず、
\d+→\d+-\d+のように部品を足しながらテスターで確認する。 - 欲張りに注意する ――
.*は最長を狙う。意図せず広くマッチしたら、.*?や[^X]*を思い出す。 - 正規表現が最適とは限らない ―― 複雑になりすぎたら、プログラムの文字列操作や専用パーサに切り替えたほうが読みやすいこともある。道具のひとつとして、適材適所で使う。
練習のすすめ 正規表現は「読んで分かる」だけでは身につきません。各レッスン下の実行ウィジェットで、本文のパターンを実際に打ち込み、テスト文字列を少しずつ変えて「どこがマッチするか」を目で見るのが、いちばんの上達法です。マッチが色分けで示され、グループの中身もその場で確認できます(より高機能なテスターが欲しくなったら regex101.com もおすすめです)。
やってみよう
このコースのパターンをテスターに写し、対象文字列をいじって挙動を観察してみましょう。「探す・取り出す・書き換える」の3つを正規表現でこなせるようになれば、どの言語・どのエディタでも通用する強力な武器が手に入ります。