正規表現の制御文字
制御文字とは、正規表現で使用可能なメタ文字、演算子、および置換テキスト文字のことです。
半角文字のみ認識されます。以下の表の文字に対応する全角文字は認識されません。
| 文字 | セットの外部で使用可能 | セットの内部で使用可能 | 説明 |
|---|---|---|---|
¥a |
はい | はい | ベル (¥u0007) に一致します。 |
¥A |
はい | 入力の先頭に一致します。¥A は入力内の改行の後とは一致しないため、^ とは異なります。 |
|
¥b |
はい | 現在位置がワード境界である場合に一致します。境界は、ワード (¥w) と非ワード (¥W) の文字が切り替わるところにあります。結合マークは無視されます。 |
|
¥B |
はい | 現在位置がワード境界でない場合に一致します。 | |
¥cX |
はい | はい | control-X 文字に一致します。 |
¥d |
はい | はい | Unicode 汎用カテゴリー Nd (Number, Decimal Digit (数値、10進数)) の任意の文字に一致します。 |
¥D |
はい | はい | 10 進数字以外のすべての文字に一致します。 |
¥e |
はい | はい | エスケープ (¥u001B) に一致します。 |
¥E |
はい | はい | ¥Q ... ¥E 引用符で囲まれた文字列を終了します。 |
¥f |
はい | はい | 用紙送り文字 (¥u000C) に一致します。 |
¥G |
はい | 現行位置が前回の一致の終わりである場合に一致します。 | |
¥n |
はい | はい | 改行 (¥u000A) に一致します。 |
¥N{UNICODE CHARACTER NAME} |
はい | はい | 指定された文字に一致します。 |
¥p{UNICODE PROPERTY NAME} |
はい | はい | 指定された Unicode プロパティーを持つ任意の文字に一致します。 |
¥P{UNICODE PROPERTY NAME} |
はい | はい | 指定された Unicode プロパティーを持たない任意の文字に一致します。 |
¥Q |
はい | はい | この文字から ¥E までの間のすべての文字を引用符で囲みます。 |
¥r |
はい | はい | 復帰 (¥u000D) に一致します。 |
¥s |
はい | はい | 空白文字に一致します。空白文字は [¥t¥n¥f¥r¥p{Z}] として定義されます。 |
¥S |
はい | はい | 空白文字以外の文字に一致します。 |
¥t |
はい | はい | 水平タブ (¥u0009) に一致します。 |
¥uhhhh |
はい | はい | 16 進数値 hhhh で表される文字に一致します。 |
¥Uhhhhhhhh |
はい | はい | 16 進数値 hhhhhhhh で表される文字に一致します。Unicode の最大コード・ポイントは ¥U0010ffff ですが、8 桁の 16 進数値を正確に指定する必要があります。 |
¥w |
はい | はい | 単語構成文字に一致します。単語構成文字は以下のとおりです。
|
¥W |
はい | はい | 非単語構成文字に一致します。 |
¥x{hhhh} |
はい | はい | 16 進数値 hhhh で表される文字に一致します。1 から 6 桁の 16 進数値を指定できます。 |
¥xhh |
はい | はい | 2 桁の 16 進数値 hh で表される文字に一致します。 |
¥X |
はい | 書記素クラスターに一致します。 | |
¥Z |
はい | 現行位置が入力の終わりである場合 (最終行末文字がある場合はさらに最終行末文字より前にある場合) に一致します。 | |
¥z |
はい | 現行位置が入力の終わりである場合に一致します。 | |
¥n |
はい | 後方参照。n 番目のキャプチャー・グループに一致する内容に一致します。n は、1 より大きく、パターン内のキャプチャー・グループの総数より小さい値でなければなりません。 |
|
¥0ooo |
はい | はい | 8 進数文字に一致します。'ooo' は、1 から 3 桁の 8 進数字です。
0377 が最大の 8 進数文字です。
先頭ゼロは必須です。これにより、8 進定数を後方参照と区別します。 |
[pattern] |
はい | はい | セット内の 1 文字に一致します。 |
. |
はい | 任意の文字に一致します。 | |
^ |
はい | 行の先頭に一致します。 | |
$ |
はい | 行の終わりに一致します。 | |
\ |
はい | 後続の文字を引用符で囲みます。リテラルとして扱うために引用符で囲む必要がある文字は、* ? + [ ( ) { } ^ $ | ¥ . / です。 |
|
\ |
はい | 後続の文字を引用符で囲みます。リテラルとして扱うために引用符で囲む必要がある文字は、[ ] ¥ です。コンテキストに応じて引用符で囲む必要がある文字は、 - & です。 |
| 演算子 | 説明 |
|---|---|
| |
選択演算子。A|B は A または B に一致します。 |
* |
0 回以上の繰り返しに一致します。できる限り長い繰り返しに一致します。 |
+ |
1 回以上の繰り返しに一致します。できる限り長い繰り返しに一致します。 |
? |
0 回または 1 回の繰り返しに一致します。1 回が優先されます。 |
{n} |
ちょうど n 回の繰り返しに一致します。 |
{n,} |
n 回以上の繰り返しに一致します。できる限り長い繰り返しに一致します。
|
{n,m} |
n 回から m 回の繰り返しに一致します。
できる限り長い繰り返し (ただし、m 回以下) に一致します。 |
*? |
0 回以上の繰り返しに一致します。できる限り短い繰り返しに一致します。 |
+? |
1 回以上の繰り返しに一致します。できる限り短い繰り返しに一致します。 |
?? |
0 回または 1 回の繰り返しに一致します。0 回が優先されます。 |
{n}? |
ちょうど n 回の繰り返しに一致します。 |
{n,}? |
n 回以上の繰り返しに一致しますが、パターン全体の一致に必要な回数を超えてはなりません。 |
{n,m}? |
n 回から m 回の繰り返しに一致します。
できる限り短い繰り返し (ただし、n 回以上) に一致します。 |
*+ |
0 回以上の繰り返しに一致します。最初に検出されたときに、できる限り長い繰り返しに一致します。全体一致が失敗しても、それより短い繰り返しでは再試行しません (強欲な一致) |
++ |
1 回以上の繰り返しに一致します。強欲な一致。 |
?+ |
0 回または 1 回の繰り返しに一致します。強欲な一致。 |
{n}+ |
ちょうど n 回の繰り返しに一致します。 |
{n,}+ |
n 回以上の繰り返しに一致します。強欲な一致。 |
{n,m}+ |
n 回から m 回の繰り返しに一致します。
強欲な一致。 |
( ... ) |
キャプチャー括弧。一致の後、括弧内の副次式に一致する範囲の入力が可能になります。 |
(?: ... ) |
非キャプチャー括弧。括弧内のパターンをグループ化しますが、一致したテキストのキャプチャーは行いません。キャプチャー括弧よりも効率的です。 |
(?> ... ) |
アトミック・マッチ括弧。括弧内の副次式との最初の一致のみが試みられます。パターン全体の一致にならない場合は、「(?>」の前の位置で一致検索を終了します。 |
(?# ... ) |
自由形式のコメント (?# comment ) |
(?= ... ) |
先読みアサーション。括弧で囲まれたパターンが現在の入力位置に一致する場合に真ですが、入力位置を前に移動しません。 |
(?! ... ) |
否定先読みアサーション。括弧で囲まれたパターンが現在の入力位置に一致しない場合に真です。 入力位置を前に移動しません。 |
(?<= ... ) |
後読みアサーション。括弧で囲まれたパターンが、現在の入力位置より前のテキストに一致する場合に真です。
一致の最終文字は、現在位置の直前の入力文字です。入力位置は変更されません。後読みパターンに一致するストリングの長さは、無制限であってはなりません (* または + 演算子なし)。 |
(?<!...) |
否定後読みアサーション。括弧で囲まれたパターンが、現在の入力位置より前のテキストに一致しない場合に真です。
一致の最終文字は、現在位置の直前の入力文字です。入力位置は変更されません。後読みパターンに一致するストリングの長さは、無制限であってはなりません (* または + 演算子なし)。 |
(?ismwx-ismwx: ... ) |
フラグ設定。括弧で囲んだ式と指定されたフラグ (有効または無効) が評価されます。 |
(?ismx-ismx) |
フラグ設定。フラグ設定を変更します。変更は、この設定の後に続くパターンの部分に適用されます。例えば (?i) は大/小文字を区別しない一致に変更されます。 |
| 式の例 | 説明 |
|---|---|
[abc] |
a、b、または c のいずれかの文字に一致します。 |
[^abc] |
否定 - a、b、および c 以外の任意の文字に一致します。 |
[A-M] |
範囲 - A から M までの任意の文字に一致します。
含まれる文字は、Unicode コード・ポイントの順序によって決まります。 |
[¥u0000-¥U0010ffff] |
範囲 - すべての文字に一致します。 |
|
Unicode カテゴリー = Letter の文字。
示した形式はすべて等価です。 |
[¥P{Letter}] |
プロパティーの否定。(大文字 ¥P)
Letter 以外のすべてに一致します。 |
[¥p{numeric_value=9}] |
数値が 9 であるすべての数値に一致します。
セット式では任意の Unicode プロパティーを使用できます。 |
[¥p{Letter}&&¥p{script=cyrillic}] |
論理 AND または交差。すべてのキリル文字のセットに一致します。 |
[¥p{Letter}--¥p{script=latin}] |
減算。すべての非ローマ字に一致します。 |
[[a-z][A-Z][0-9]] [a-zA-Z0-9]] |
暗黙的な論理 OR または和集合。この例では ASCII 文字および数字に一致します。 これらの 2 つの形式は等価です。 |
[:script=Greek:] |
プロパティーに関する、POSIX のような代替構文。
¥p{script=Greek} と等価です。 |