正規表現構文早見表
このページでは、RegExp ガイドの記事の内容を集約して、RegExp 構文のすべての機能を網羅した全体的な早見表を提供します。特定のトピックに関する詳細な情報が必要な場合は、対応する見出しのリンクを辿って完全な記事にアクセスするか、ガイドに移動してください。
文字クラス
文字クラスは、文字の種類を判別するものです。例えば、文字と数字を判別することができます。
文字 | 意味 |
---|---|
[xyz]
|
文字クラス: 囲んだ文字のいずれかに一致します。ハイフンを使用して文字の範囲を指定することもできますが、ハイフンが角括弧で囲まれた最初または最後の文字として現れた場合、それは通常の文字として文字クラスに含めるためのリテラルハイフンと見なされます。
例えば、
例えば、
例えば、 |
|
否定文字クラス:
つまり、角括弧で囲まれていないもの全てに一致します。ハイフンを使用して文字の範囲を指定することができますが、ハイフンが メモ: ^ の文字は入力の先頭も意味することがあります。 |
. |
ワイルドカード:
改行文字 ( |
\d |
数字文字クラスエスケープ:
あらゆる(アラビア)数字に一致します。 |
\D |
非数字文字クラスエスケープ:
あらゆる(アラビア)数字以外の文字に一致します。 |
\w |
英数文字クラスエスケープ:
アンダースコアを含むあらゆる半角英数字(基本ラテンアルファベット)に一致します。 |
\W |
非英数文字クラスエスケープ:
基本ラテンアルファベットの文字以外に一致します。 |
\s |
ホワイトスペース文字クラスエスケープ:
ホワイトスペース文字、例えば空白、タブ、改ページ、改行、その他の Unicode 空白文字などの 1 文字に一致します。 |
\S |
非ホワイトスペース文字クラスエスケープ:
ホワイトスペース以外の 1 文字に一致します。
|
\t |
水平タブに一致します。 |
\r |
復帰に一致します。 |
\n |
行送りに一致します。 |
\v |
垂直タブに一致します。 |
\f |
改ページに一致します。 |
[\b] |
後退文字に一致します。単語境界アサーション (\b ) についてはアサーションを参照してください。
|
\0 |
NUL 文字に一致します。この後ろに他の数字を続けてはいけません。 |
\cX
|
キャレット記法を使用した制御文字に一致します。 "X" には A–Z の文字が入ります(コードポイント |
\xhh
|
hh (2 桁の 16 進数)コードからなる文字に一致します。
|
\uhhhh
|
hhhh (4 桁の 16 進数)の値からなる UTF-16 コードユニットに一致します。
|
\u{hhhh} または \u{hhhhh}
|
(u フラグがセットされた時のみ) U+hhhh または U+hhhhh (16 進数) Unicode 値からなる文字に一致します。
|
\p{UnicodeProperty} ,
\P{UnicodeProperty}
|
Unicode 文字クラスエスケープ: Unicode 文字プロパティに基づいた文字に一致します。例えば、絵文字、日本語のカタカナ、中国語や日本語の漢字などです。 |
\ |
次の文字を特別に扱うこと、「エスケープ」することを示します。 その振る舞いは、2 通りのうちのどちらか 1 つです。
メモ: この文字を文字通りに一致させるには、それ自身をエスケープしてください。つまり、 |
x|y
|
論理和:
"x" または "y" に一致します。パイプ (
メモ: 論理和は「選択肢の集合」を指定するもう一つの方法ですが、文字クラスではありません。論理和は独立したものではありません。大きなパターンの一部にするためにはグループを使用する必要があります。 |
アサーション
アサーションには、行や単語の先頭と末尾を示す境目、他にも何らかの形で一致が可能であることを示すパターン(先読み、後読み、条件式など)が含まれます。
境界型のアサーション
文字 | 意味 |
---|---|
^ |
入力開始境界アサーション:
入力の先頭に一致します。複数行フラグ ( メモ: この文字は、文字クラスパターンの先頭にある場合は異なる意味を持ちます。 |
$ |
入力末尾境界アサーション:
入力の末尾に一致します。複数行フラグ ( |
\b |
単語境界アサーション: 単語の境界に一致します。これは、単語構成文字と後に続く非単語構成文字の間、または非単語構成文字と後に続く単語構成文字の間、または文字列の先頭・末尾です。単語の区切りは一致する「文字」ではありません。アンカーのように、単語の区切りは一致した部分に含まれません。言い換えると、一致した単語の区切りの長さは 0 です。 例:
バックスペース文字 ( |
\B |
非単語境界アサーション:
単語以外の境界に一致します。これは、前の文字と次の文字が同じ種類である位置のことです。どちらも単語でなければならないか、または、 2 つの文字の間や 2 つの空白の間など、どちらも非単語でなければなりません。文字列の先頭と末尾は、非単語とみなされます。一致した単語の境界と同じように、一致した非単語の境界も一致に含まれません。例えば、 |
その他のアサーション
メモ: ?
の文字は数量子としても使用されます。
文字 | 意味 |
---|---|
x(?=y) |
先読みアサーション:
"x" の後に "y" が続く場合のみ "x" に一致します。例えば、 |
x(?!y) |
否定先読みアサーション:
"x" の後に "y" が続いていない場合のみ "x" に一致します。例えば、 |
(?<=y)x |
後読みアサーション:
"x" の前に "y" がある場合のみ "x" に一致します。例えば、 |
(?<!y)x |
否定後読みアサーション:
"x" の前に "y" がない場合のみ "x" に一致します。例えば、 |
グループと後方参照
グループと後方参照は、式の文字のグループを示します。
文字 | 意味 |
---|---|
(x) |
キャプチャグループ:
正規表現は複数のキャプチャグループを持つことができます。結果、一般的にキャプチャグループ内の左括弧と同じ順にある、配列の要素のキャプチャグループに一致しています。たいていの場合、これはキャプチャグループ自身の順番です。これはキャプチャグループがネストしている場合に重要です。一致は結果の要素の添字 ( キャプチャグループはパフォーマンス上の損失があります。一致した部分文字列を使わない場合はキャプチャしない括弧(後述)を使ったほうがいいでしょう。
|
(?<Name>x) |
名前付きキャプチャグループ:
"x" に一致し、
例えば、電話番号からアメリカのエリアコードを取り出す際、 |
(?:x) |
キャプチャなしグループ:
"x" に一致しますが、一致した内容は記憶しません。一致した部分文字列は、結果の配列の要素 ( |
(?flags:x) , (?:flags-flags:x) |
修飾子:
指定したフラグを、囲まれたパターンに対してのみ有効または無効にします。修飾子では、 |
\n
|
後方参照:
"n" に正の整数が入ります。正規表現内において n 番目の括弧の部分に一致した最新の部分文字列への後方参照となります(括弧の数は左からカウントします)。例えば
|
\k<Name> |
名前付き後方参照:
例えば、
メモ: |
数量子
数量子は、一致する文字や表現の数を示します。
文字 | 意味 |
---|---|
x*
|
直前のアイテム "x" の 0 回以上の繰り返しに一致します。例えば
|
x+
|
直前のアイテム "x" の 1 回以上の繰り返しに一致します。 |
x?
|
直前のアイテム "x" の 0 回か 1 回の出現に一致します。例えば
|
x{n}
|
"n" には非負の整数が入ります。直前のアイテム "x" がちょうど "n" 回出現するものに一致します。例えば |
x{n,}
|
"n" には非負の整数が入ります。直前のアイテム "x" の少なくとも "n" 回の出現に一致します。例えば、 |
x{n,m}
|
ここで、"n" と "m" は非負の整数で、 |
|
既定では
|