Skip to content

正規表現早见表

文字の一致

[abc] a, b, c のいずれかの 1 文字に一致
[^abc] a, b, c 以外の任意の文字に一致。「^」は最初の文字として出現した場合のみ有効
[a-g] a から g の範囲内の任意の 1 文字に一致
[^a-g] a から g の範囲外の任意の文字に一致
[H-N] H から N の範囲内の任意の 1 文字に一致
[0-9] 0 から 9 の範囲内の任意の 1 文字に一致
[a-gH-N] a-g または H-N の範囲内の任意の 1 文字に一致
ワイルドカード:
. 改行以外の任意の文字に一致 ([^\n\r])
\s 空白文字(改行、タブ、スペースなど)
\S [^\s] (空白以外の文字)
\d 数字: [0-9]
\D [^\d] (数字以外)
\w 単語構成文字: [0-9A-Za-z_]
\W [^\w] (単語構成文字以外)

グループの一致

(a b)
(…) キャプチャグループ
(?:…) 非キャプチャグループ
(?<name>…) または (?’name’…) 名前付きキャプチャグループ。「name」はカスタマイズ可能
(?(condition)true_regex false_regex)

group(0) は一致した文字列全体を取得するために使用され、group(>0) は全体の一致結果からサブキャプチャグループを取得できます。

注意: Java 1.7 以降で名前付きキャプチャグループがサポートされています(group メソッドの引数に文字列 name を渡す)。JS と Python は現在、名前付きキャプチャグループをネイティブでサポートしていません。

頻度範囲(量詞)

{3} 直前の項目がちょうど 3 回出現する場合に一致({3,3} と等価)
{3,6} 直前の項目が 3 回から 6 回出現する場合に一致
{3,} 直前の項目が少なくとも 3 回出現する場合に一致
{0,6} 直前の項目が最大で 6 回出現する場合に一致
ワイルドカード:
* {0,} (0回以上)
+ {1,} (1回以上)
? {0,1} (0回または1回)
\w* 欲張りモード
\w*? 非欲張りモード

アンカー(境界)

^ 文字列の先頭
$ 文字列の末尾
\b 単語の境界
\B 単語の境界以外
先読み・後読み断言:
(?=exp) 肯定先読み (exp が後に続く)
(?<=exp) 肯定後読み (exp が前に続く)
(?!exp) 否定先読み (exp が後に続かない)
(?<!exp) 否定後読み (exp が前に続かない)

\b(\w+)\b は (?<=\W?)(\w+)(?=\W?) と等価です。