正規表現早见表
文字の一致
| [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?) と等価です。