正規表現とは
正規表現は、テキストを探すためのパターンです。catは「cat」という文字列をどこでも見つけ、「concatenate」の中のものにも一致します。特別な記号を使うと、決まった文字ではなく「文字の種類」を表せます。
基本の部品
. | 改行以外の任意の1文字 |
\d, \w, \s | 数字1文字、英数字またはアンダースコア、空白・タブ・改行 |
[aeiou], [^0-9] | このうちどれか1文字、数字以外の1文字 |
*, +, ? | 直前のものが0回以上、1回以上、0回か1回 |
{3}, {2,4} | ちょうど3回、2〜4回 |
^, $ | テキストの先頭と末尾(mフラグでは各行の先頭と末尾) |
\b | 単語の境界:\bcat\bは「cat」には一致するが「concatenate」には一致しない |
( ), | | 置換で再利用できるグループ、「これかあれ」 |
特別な記号そのものを探すには、前にバックスラッシュを付けます。\.はピリオドに一致します。
例
\d{3}-\d{4}は、555-0123のような番号を見つけます。^[ \t]+|[ \t]+$をgとmのフラグで使うと、各行の先頭と末尾の空白とタブが見つかり、空文字に置換して消せます。(\d{4})-(\d{2})-(\d{2})を$1年$2月$3日に置換すると、2024-09-27が2024年09月27日になります。
フラグと最長一致
gフラグは最初の1つだけでなくすべての一致を探し、iは大文字と小文字を区別せず、mは^と$を行ごとに働かせます。量指定子は最長一致なので、<.*>は行の最初の<から最後の>までに一致します。?を付けると最短で止まります:<.*?>。
正規表現テスター(JavaScriptの構文)で一致をハイライトしながら試し、検索と置換で自分のテキストに使ってみましょう。