本文へスキップ
BecomeCoder

正規表現コース · 第5章 実践で使う · レッスン18

正規表現のまとめ ― これからのつきあい方

ブラウザで完結

導入

このコースで学んだ道具を振り返り、これから正規表現と上手につきあうためのコツを整理します。

説明

学んだ要素を一覧にすると、正規表現は少数の部品の組み合わせだと分かります。

  • 文字の指定:ふつうの文字 / .(任意1文字)/ [abc](文字クラス)/ [^abc](否定)/ \d \w \s(定義済み)
  • 繰り返し*(0以上)/ +(1以上)/ ?(0か1)/ {n,m}(回数指定)/ *?(控えめ)
  • 位置^ $(行頭・行末)/ \b(単語境界)
  • まとまりと選択( )(グループ・キャプチャ)/ (?: )(非キャプチャ)/ |(または)
  • 活用$1(後方参照・置換)/ i m s g(フラグ)

上手に使うためのコツは3つです。

  1. 少しずつ組み立てて確かめる ―― いきなり長いパターンを書かず、\d+\d+-\d+ のように部品を足しながらテスターで確認する。
  2. 欲張りに注意する ―― .* は最長を狙う。意図せず広くマッチしたら、.*?[^X]* を思い出す。
  3. 正規表現が最適とは限らない ―― 複雑になりすぎたら、プログラムの文字列操作や専用パーサに切り替えたほうが読みやすいこともある。道具のひとつとして、適材適所で使う。

練習のすすめ 正規表現は「読んで分かる」だけでは身につきません。各レッスン下の実行ウィジェットで、本文のパターンを実際に打ち込み、テスト文字列を少しずつ変えて「どこがマッチするか」を目で見るのが、いちばんの上達法です。マッチが色分けで示され、グループの中身もその場で確認できます(より高機能なテスターが欲しくなったら regex101.com もおすすめです)。

やってみよう

このコースのパターンをテスターに写し、対象文字列をいじって挙動を観察してみましょう。「探す・取り出す・書き換える」の3つを正規表現でこなせるようになれば、どの言語・どのエディタでも通用する強力な武器が手に入ります。

実際に動かしてみよう

パターン欄に正規表現を、下の「テスト文字列」欄に対象の文字列を入れると、マッチした部分がその場でハイライトされます(ブラウザ標準の正規表現エンジンで動きます)。フラグ(g/i/m/s)を切り替えたり、本文のパターンを書き換えたりして、マッチの変化を確かめながら進めましょう。

正規表現 — その場でマッチを確認

ブラウザ標準の正規表現エンジンでパターンを試せる学習用ウィジェットを読み込みます(外部エンジン不要・軽量です)。
スクロールして表示された時点でも自動で読み込まれます。