位置の指定、特殊文字、最長一致、最短一致、強欲な数量子、先読み、後読みなど(言語やアプリによっては多少違うかもしれません)。
位置の指定
メタ文字 |
意味 |
^ |
行の先頭 |
$ |
行の末尾 |
\A |
文字列の先頭 |
\z |
文字列の末尾 |
\Z |
文字列の末尾(行末記号を除く) |
\b |
単語境界 |
\B |
非単語境界 |
特殊文字
メタ文字 |
意味 |
\ |
エスケープ文字 |
\t |
タブ文字 |
\n |
改行コード(CR) |
\r |
改行コード(LF) |
\f |
改ページ |
\d |
数字 |
\D |
数字以外 |
\s |
空白文字*1 |
\S |
空白文字以外 |
\w |
単語構成文字*2 |
\W |
単語構成文字以外 |
*1:半角・全角スペース、タブ文字、改行コード、改ページ
*2:文字、数字、アンダースコア
任意の文字と繰り返し(量指定子)
最長一致*1 |
最短一致*2 |
強欲な数量子*3 |
意味 |
. |
|
|
任意の1文字(改行コードを除く) |
* |
*? |
*+ |
直前の1文字・グループが 0 回以上 |
+ |
+? |
++ |
直前の1文字・グループが 1 回以上 |
? |
?? |
?+ |
直前の1文字・グループが 0 回または 1 回 |
{n} |
{n}? |
{n}+ |
直前の1文字・グループが n 回 |
{n,} |
{n,}? |
{n,}+ |
直前の1文字・グループが n 回以上 |
{n,m} |
{n,m}? |
{n,m}+ |
直前の1文字・グループが n 回以上、m 回以下 |
*1:条件に合う一番長い部分に一致する。パターン全体が一致することを優先する。
*2:条件に合う一番短い部分に一致する。
*3:条件に合う一番長い部分に一致する。パターン全体が一致することを優先しない。
例)abcXdefX
最長一致:^.*X
→ 「abcXabcX」に一致する。
最短一致:^.*?X
→ 「abcX」に一致する。
強欲な数量子:^.*+X
→ 一致しない。^.*+
→ 「abcXabcX」に一致する。
候補から選択
メタ文字 |
意味 |
() |
グループ化 |
| |
いずれかの文字列 |
[] |
いずれかの1文字 |
|の用例
表現 |
意味 |
abc|mno|xyz |
単純(abc、mno、xyzのいずれか) |
abc.*X|m+o|xy?z |
候補にメタ文字を含める(abcXXX、mXo、xzなど) |
(abc|mno|xyz)X |
他の文字列と組み合わせる(abcX、mnoX、xyzXのいずれか) |
(abc|mno|xyz)* |
量指定子と組み合わせる(abcabc、mnoabcxyzなど) |
[]の用例
表現 |
意味 |
[abc] |
単純(a、b、cいずれか1文字) |
[^abc] |
否定(a、b、c以外の1文字) |
[a-z] |
範囲指定(半角英小文字) |
[A-Z] |
範囲指定(半角英大文字) |
[0-9] |
範囲指定(半角数字) |
[ぁ-ん] |
範囲指定(ひらがな) |
[ァ-ヴ] |
範囲指定(カタカナ) |
[ヲ-゚] |
範囲指定(半角カタカナ) |
[a-zA-Z] |
結合(a~z または A~Z) |
[a-z&&[d-f]] |
交差(a~z かつ d~f) |
[a-z&&[^d-f]] |
減算(d~f を除く a~z) |
先読みと後読み
メタ文字 |
意味 |
用例 |
用例の意味 |
?= |
肯定的先読み |
foo(?=bar) |
直後がbarのfoo |
?! |
否定的先読み |
foo(?!bar) |
直後がbarでないfoo |
?<= |
肯定的後読み |
(?<=bar)foo |
直前がbarのfoo |
?<! |
否定的後読み |
(?<!bar)foo |
直前がbarでないfoo |