JP
/
EN

正規表現|メタ文字一覧

位置の指定

メタ文字 意味
^ 行の先頭
$ 行の末尾
\A 文字列の先頭
\z 文字列の末尾
\Z 文字列の末尾(行末記号を除く)
\b 単語境界
\B 非単語境界

^, $が「行の先頭・末尾」となるのはマルチラインモードの場合。シングルラインモードの場合は文字列全体の先頭・末尾になる。たいていはデフォルトでマルチラインモード。

制御文字や定義済みの表現

メタ文字 意味
\ エスケープ文字(直後のメタ文字をエスケープする)
\t タブ文字
\n 改行コード(CR)
\r 改行コード(LF)
\f 改ページ
\d 数字
\D 数字以外
\s 空白文字(半角/全角スペース、タブ、改行、改ページ)
\S 空白文字以外
\w 単語構成文字(文字、数字、アンダースコア)
\W 単語構成文字以外

ワイルドカードと繰り返しのメタ文字(量指定子)

直前のパターンの連続した繰り返しにマッチするメタ文字で、最長一致、最短一致、強欲な数量子がある。(a*)*のように量指定子を入れ子にすることもできるが、正規表現エンジン内での比較回数(負荷)が激増する可能性があるため注意が必要。

最長一致 最短一致 強欲な数量子 意味
. 任意の1文字(改行コードを除く)
* *? *+ 直前の要素が0回以上
+ +? ++ 直前の要素が1回以上
? ?? ?+ 直前の要素が0回または1回
{n} {n}? {n}+ 直前の要素がn回
{n,} {n,}? {n,}+ 直前の要素がn回以上
{n,m} {n,m}? {n,m}+ 直前の要素がn回以上m回以下

最長一致

条件に合う一番長い部分に一致し、パターン全体が一致することを優先する。

最短一致

条件に合う一番短い部分に一致する。

強欲な数量子

条件に合う一番長い部分に一致し、パターン全体が一致することを優先しない。

例)「abcXdefX」を検索する場合。

正規表現 検索結果
最長一致 ^.*X abcXdefX
最短一致 ^.*?X abcX
強欲な数量子 ^.*+X 一致しない(※)
強欲な数量子 ^.*+ abcXdefX

(※)^.*+だけで全体に一致するため最後のXが一致しない。

候補からの選択を表すメタ文字(OR条件)

メタ文字 意味
() グループ化(グループ化構成体)
| いずれかの文字列(代替構成体)
[] いずれかの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