Skip to content

正規表現トークン 解説

コアな正規表現トークンをすべて収録:アンカー、文字クラス、量指定子、グループ、フラグ。それぞれの意味と、具体的なマッチ例を示します。Regex Tester ツールのクイックリファレンス版です。

正規表現トークンは組み合わせて使います。アンカー、文字クラス、量指定子を重ねてパターンを組み立てます。^ は先頭に固定し、\d は数字にマッチし、{2,4} は繰り返し回数を決めます。^\d{2,4}$ と組み合わせると、数字 2〜4 桁だけの文字列全体にマッチします。パターンは左から右へ、トークンを一つずつ読んでください。コンパニオンの Regex Tester ツールで、これらのトークンを自分のテキストに対してライブで試せます。

リファレンステーブル · 55 項目regex-tester ツールを開く →
55 of 55 rows
アンカー
文字列の先頭の位置、または m フラグ指定時は各行の先頭の位置にマッチします。^He → He
文字列の末尾の位置、または m フラグ指定時は各行の末尾の位置にマッチします。lo$ → lo
単語境界にマッチします。単語文字と非単語文字の間の位置です。\bcat\b → cat
非単語境界にマッチします。2 つの単語文字、または 2 つの非単語文字の間の位置です。\Bar → ar
文字クラス
改行を除く任意の 1 文字にマッチします。s フラグを付けると改行にもマッチします。a.c → abc
任意の数字 0〜9 にマッチします。\d → 7
数字以外の任意の文字にマッチします。\D → a
任意の単語文字(英字、数字、アンダースコア)にマッチします。\w → _
単語文字以外の任意の文字にマッチします。\W → !
任意の空白文字(スペース、タブ、改行)にマッチします。a\sb → a b
空白以外の任意の文字にマッチします。\S → a
角括弧内に列挙した文字のうち任意の 1 文字にマッチします。[aeiou] → e
角括弧内に列挙した文字以外の任意の文字にマッチします。[^aeiou] → s
指定した範囲(a から z)の任意の 1 文字にマッチします。[a-z] → m
改行を含む任意の 1 文字にマッチします。行をまたぐドットの定番イディオムです。[\s\S] → \n
u フラグ指定時、あらゆる文字体系の任意の Unicode 文字(letter)にマッチします。\p{L} → é
u フラグ指定時、あらゆる文字体系の任意の Unicode 数字文字にマッチします。\p{N} → ٣
エスケープ:1 つのラインフィード文字にマッチします。\n → line feed
エスケープ:1 つのタブ文字にマッチします。\t → tab
エスケープ:1 つのキャリッジリターン文字にマッチします。\r → carriage return
指定した 2 桁の 16 進コードを持つ 1 文字にマッチします。\x41 → A
u フラグ指定時、指定した 16 進コードポイントの 1 文字にマッチします。\u{1F600} → 😀
v フラグによるクラス積集合:両方の集合に同時に含まれる文字にマッチします。[[a-z]&&[^aeiou]] → t
量指定子
直前のトークンに 0 回以上繰り返しマッチします。ab* → abbb
直前のトークンに 1 回以上繰り返しマッチします。a+ → aaa
直前のトークンに 0 回か 1 回マッチし、省略可能にします。colou?r → color
直前のトークンにちょうど n 回マッチします。a{3} → aaa
直前のトークンに n 回以上マッチします。a{2,} → aaaa
直前のトークンに n 回以上 m 回以下(両端を含む)マッチします。a{2,4} → aaa
最短一致の量指定子:直前のトークンに 0 回以上、できるだけ少なくマッチします。<.*?> on <a><b> → <a>
最短一致の量指定子:直前のトークンに 1 回以上、できるだけ少なくマッチします。\d+? on 123 → 1
最短一致の量指定子:直前のトークンに 0 回か 1 回マッチし、0 回を優先します。ab?? on ab → a
最短一致の量指定子:直前のトークンに n〜m 回、できるだけ少なくマッチします。a{1,3}? on aaa → a
絶対最大量指定子 (PCRE):直前のトークンに 0 回以上マッチして結果を取っておき、別の分割を試すためにバックトラックすることはありません。.*+a on aaa → no match
グループと選択
キャプチャグループ:並びにマッチし、後方参照のために記憶します。(ab)+ → abab
非キャプチャグループ:並びにマッチしますが、記憶はしません。(?:ab)+ → abab
肯定先読み:直後の文字が abc ならマッチします。消費はしません。a(?=b) → a
否定先読み:直後の文字が abc でなければマッチします。消費はしません。a(?!b) → a
後方参照:キャプチャグループ 1 が取得したテキストそのものにマッチします。(a)\1 → aa
選択:縦棒の前または後ろの式のどちらかにマッチします。cat|dog → dog
名前付きキャプチャグループ:並びにマッチし、指定した名前で記憶します。(?<year>\d{4}) → year = 2026
肯定後読み:直前の文字が abc ならマッチします。消費はしません。(?<=a)b → b
否定後読み:直前の文字が abc でなければマッチします。消費はしません。(?<!a)b → b
名前付き後方参照:名前付きグループが取得したテキストそのものにマッチします。(?<w>\w+) \k<w> → the the
アトミックグループ (PCRE):並びに 1 回だけマッチし、内部へは二度とバックトラックしません。(?>a+)ab on aab → no match
ブランチリセット (PCRE):各選択肢が同じグループ番号を再利用する選択です。(?|(cat)|(dog)) → \1 = dog
フラグ
グローバルフラグ:最初の 1 つだけでなく、文字列内のすべてのマッチを検索します。/a/g on aaa → a, a, a
大小文字を無視するフラグ:マッチ時に英字の大小を区別しません。/Hi/i → hi
複数行フラグ:^ と $ を各行の先頭と末尾として扱います。/^a/m matches at the start of each line
dotall フラグ:ドットが改行にもマッチするようになります。/a.b/s → a\nb
Unicode フラグ:パターンと入力を Unicode コードポイントとして扱います。/\u{1F600}/u → 😀
sticky フラグ:lastIndex で設定された位置のみにマッチします。/ab/y matches only at lastIndex
indices フラグ:各マッチの開始・終了位置を結果に追加します。/b/d on abc → indices [1, 2]
Unicode セットフラグ:より厳格な u で、クラス内での集合演算も許可します。/[a-z&&[^aeiou]]/v → t
拡張フラグ (PCRE):パターン内のエスケープされていない空白と # コメントを無視します。/a b/x → ab