正規表現チートシート
検索できる正規表現チートシート。文字クラス、アンカー、量指定子、グループ、先読み・後読み、エスケープ、フラグ、置換パターンを例つきで掲載しています。
文字クラス
. | 改行以外の任意の 1 文字(s フラグ使用時はすべての文字) a.c → abc, a-c |
\d | 数字 0–9(u フラグがあっても ASCII 数字のみ) \d+ → 2024 |
\D | 数字以外の文字 |
\w | 単語構成文字:A–Z、a–z、0–9、_(日本語は含まない) \w+ → user_42 |
\W | 単語構成文字以外 |
\s | 空白:スペース、タブ、改行、Unicode の空白(全角スペースを含む) |
\S | 空白以外の文字 |
[abc] | 列挙した文字のいずれか [aeiou] → e |
[^abc] | 列挙した文字以外 |
[a-z] | 範囲内の文字(ここでは a〜z) [0-9a-f]+ → ff00 |
\p{L} | あらゆる文字体系の文字(u フラグが必要) \p{L}+ (u) → Việt |
\p{Script=Han} | 特定の文字体系の文字。例:Han、Hiragana、Katakana(u フラグが必要) |
アンカー
^ | テキストの先頭(m フラグ使用時は各行の先頭) |
$ | テキストの末尾(m フラグ使用時は各行の末尾) |
\b | 単語境界 \bcat\b → cat (not concat) |
\B | 単語境界以外 |
量指定子
* | 0 回以上(最長一致) |
+ | 1 回以上(最長一致) |
? | 0 回または 1 回(省略可) colou?r → color, colour |
{n} | ちょうど n 回 \d{4} → 2024 |
{n,} | n 回以上 |
{n,m} | n〜m 回 |
*? +? ?? | 最短一致版:できるだけ少ない文字に一致 <.+?> → <b> |
グループと後方参照
(abc) | キャプチャグループ。$1、$2… で参照 |
(?:abc) | キャプチャしないグループ |
(?<name>abc) | 名前付きキャプチャグループ (?<y>\d{4}) → y = 2024 |
\1 | グループ 1 に一致した文字列を繰り返す (\w)\1 → ll in hello |
\k<name> | 名前付きグループに一致した文字列を繰り返す |
a|b | 左右どちらかの選択肢 cat|dog → dog |
先読み・後読み
(?=abc) | 直後に abc が続く(一致には含めない) \d+(?=px) → 12 in 12px |
(?!abc) | 直後に abc が続かない |
(?<=abc) | 直前が abc(一致には含めない) (?<=\$)\d+ → 5 in $5 |
(?<!abc) | 直前が abc ではない |
エスケープ
\. \* \\ | 特殊文字をエスケープして文字どおりに一致させる |
\n \t \r | 改行、タブ、復帰 |
\uFFFF | 4 桁の 16 進コードで文字を指定 |
\u{1F600} | コードポイントで文字を指定(u フラグが必要) |
フラグ
g | 最初の 1 件だけでなくすべての一致を検索 |
i | 大文字と小文字を区別しない |
m | ^ と $ が各行の先頭・末尾に一致 |
s | ドットが改行にも一致 |
u | 完全な Unicode モード:\p{…}、\u{…}、絵文字を 1 文字として扱う |
y | lastIndex の位置でのみ一致(スティッキー) |
d | 各グループの開始・終了インデックスを返す |
置換パターン
$1 | キャプチャグループ 1 の文字列 |
$<name> | 名前付きグループの文字列 |
$& | 一致した文字列全体 |
$` $' | 一致部分の前 / 後の文字列 |
$$ | $ 記号そのもの |
関連ツール
すべて表示正規表現チートシートとは?
JavaScript(ECMAScript)の正規表現の構文を、コンパクトにまとめた検索できるリファレンスです。文字クラス、Unicode プロパティのエスケープ、アンカー、量指定子(最長一致と最短一致)、グループと後方参照、先読みと後読み、エスケープ、7つのフラグすべて、置換文字列で使える特殊なパターンを、短い例つきで扱っています。
正規表現チートシートの使い方
- セクションをスクロールするか、検索ボックスに入力して、トークン(例:\b)や説明の語(例:「後読み」)で絞り込みます。
- 各トークンの説明と例を読みます。
- そのパターンを正規表現テスターで試します。
例
Search: \d
\d – A digit 0–9 (with the u flag still only ASCII digits); \D – Any character that is not a digit
正規表現チートシートを使うべき場面
JavaScript、TypeScript、Node.js、ほとんどの最新の正規表現エンジンの正規表現を書くときに使えます。エンジン固有の構文(PCRE や Python の所有量指定子、アトミックグループ、\A、\z、インライン修飾子)は、JavaScript が対応していないため掲載していません。
正規表現チートシートの仕組み
項目はトピックごとにまとめられています。検索ボックスは、トークンまたは翻訳された説明に入力したテキストが含まれる項目を、大文字小文字を区別せずに絞り込みます。説明は ECMAScript の動作を反映しています。たとえば \d は u フラグがあっても ASCII の数字にしか一致しないこと、\p{…} には u フラグが必要なこと、. は s フラグを設定しない限り改行に一致しないことなどです。
一般的な使用例
- 名前付きグループや後読みの構文を調べる
- 各正規表現フラグの働きを思い出す
- $& や $<name> のような置換パターンを確認する
- 例を使って正規表現の基礎を教える
よくある質問
\w はアクセント付きの文字に一致しますか?
いいえ。JavaScript の \w は A–Z、a–z、0–9、_ だけです。あらゆる言語の文字に一致させるには、u フラグと \p{L} を使ってください。
最長一致と最短一致の量指定子の違いは何ですか?
最長一致の量指定子(*、+、{n,})はできるだけ多くに一致します。? を付ける(*?、+?)と、できるだけ少なく一致します。たとえば <.+?> は、最後の > までではなく、1つのタグに一致します。
JavaScript は後読みに対応していますか?
はい。(?<=…) と (?<!…) は、すべての最新のブラウザと Node.js で対応しています。