NaiNaiで使用可能な正規表現
NaiNaiがサポートする正規表現の書式・構文は、次表のとおりです。
正規表現
| 解説
|
| . | 任意の 1 文字に一致します。
|
| [ ] | 角かっこ内のいずれかの文字に一致します。たとえば、[abc]
と指定した場合、"a"、"b"、および "c" のいずれかに一致します。
|
| ^ | (1) 正規表現の先頭にある ^ は、入力文字列の先頭に一致します。たとえば、^[abc] と指定した場合、"a"、"b"、または "c" で始まる入力文字列だけに一致します。 (2) 文字クラスの先頭にこのメタ文字がある場合は、後に続く文字クラスが否定されます。このように指定した文字クラスは、角かっこ内の文字以外の任意の文字に一致します。たとえば、[^abc] と指定した場合、"a"、"b"、および "c" 以外のすべての文字と一致します。
|
| - | 文字クラスの中で使用され、文字の範囲を示します。たとえば、[0-9]
と指定した場合、"0" から "9" までの任意の数字に一致します。 |
| ? | 直前の正規表現に一致する文字があるかないかわからない場合に使用します。つまり、その正規表現が 0 回または 1
回出現するものと一致します。たとえば、[0-9][0-9]? と指定した場合、"2" と "12"
のいずれにも一致します。 |
| + | 直前の正規表現の 1 回以上の繰り返しに一致します。たとえば、[0-9]+
と指定した場合、"1"、"13"、"666" のいずれにも一致します。 |
| * | 直前の正規表現の 0 回以上の繰り返しに一致します。 |
?? +? *? | ?、+、および *
の最短一致。可能な限り広範囲に一致する最長一致とは異なり、最小範囲に一致します。たとえば、"<abc><def>"
という文字列がある場合、<.*?> と指定すると "<abc>" に一致し、<.*> と指定すると "<abc><def>" に一致します。 |
| ( ) | グループ化演算子。たとえば、(\d+,)*\d+
と指定した場合、コンマで区切られた数字のリスト ("1"、"1,23,456" など) に一致します。 |
| | |
| \ | エスケープ文字。次に続く文字が、特殊文字としてではなく通常の文字として解釈されます。たとえば、[0-9]+ と指定した場合は 1 つ以上の数字に一致しますが、[0-9]\+
と指定した場合は 1 つの数字にプラス記号が続いた文字列に一致します。この文字は省略形としても使用されます。たとえば、\a は任意の英数字を示します。次の表を参照してください。
\ の後ろに数字 n が続く場合は、n 番目の一致グループに一致します。番号は 0
から始まります。たとえば、<{.*?}>.*?</\0> は
"<head>Contents</head>" に一致します。
|
| $ | 正規表現の末尾にある $ は、入力文字列の末尾に一致します。たとえば、[0-9]$ と指定した場合、入力文字列の末尾にある数字に一致します。 |
| | | 選択演算子。この演算子で区切られた 2 つの正規表現のいずれかに一致します。たとえば、T|the と指定した場合、"The" または "the" に一致します。 |
| ! | 否定演算子。! に続く正規表現は否定されます。たとえば、a!b と指定した場合、後ろに "b" が続いていない "a"
に一致します。
|
| 省略形 | 対応する表現 |
| \a | 任意の英数字 : ([a-zA-Z0-9])
|
| \b | 空白 : ([ \\t]) |
| \c | 任意の英字 : ([a-zA-Z]) |
| \d | 任意の 10 進数字 : ([0-9]) |
| \h | 任意の 16 進数字 : ([0-9a-fA-F]) |
| \n | 改行文字 : (\r|(\r?\n)) |
| \q | 引用符で囲まれた文字列 : (\"[^\"]*\")|(\'[^\']*\') |
| \w | 単語 : ([a-zA-Z]+) |
| \z | 整数 : ([0-9]+) |
例:| このような正規表現が | このような文字列にマッチします
|
| |
| |
| |
※ユーザの皆様へ正規表現の使用例を募集しています。
お使いの正規表現と一致対象の文字列の例を
こちら から教えてください。