正規表現|メタ文字の一覧

位置の指定、特殊文字、最長一致、最短一致、強欲な数量子、先読み、後読みなど(言語やアプリによっては多少違うかもしれません)。

位置の指定

メタ文字 意味
^ 行の先頭
$ 行の末尾
\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