| アンカー |
|---|
| 文字列の先頭の位置、または 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 |