7. 選択
指定した複数パターンのいずれか1つにマッチします。メタ文字は|
です。各パターンは|
によって区切られます。論理和とも呼ばれます。
下記は、文字列ABCもしくは文字列XYZのいずれかを検索する正規表現です。
ABC|XYZ
もう1つサンプルです。文字列ABもしくは文字列CDもしくは文字列EFのいずれかを検索する正規表現です。
AB|CD|EF
ちなみに、1文字同士の選択は、文字クラスに変形できます。
A|C|E|G|XXX
[ACEG]|XXX
8. 量指定子
直前のパターンにマッチする回数を指定します。メタ文字は*
と+
と?
です。それぞれ、下記の回数のマッチをします。
*
直前のパターンに0回以上マッチ+
直前のパターンに1回以上マッチ?
直前のパターンに0回か1回マッチ
*
の使い方のサンプルです。A*
はAに0回以上マッチします。
^A*BCD$
+
の使い方のサンプルです。A+
はAに1回以上マッチします。
^A+BCD$
?
の使い方のサンプルです。A?
はAに0回か1回マッチします。
^A?BCD$
9. 量指定子(範囲指定繰り返し制御)
直前のパターンにマッチする回数を指定します。メタ文字は{
と}
です。先ほどの量指定子の*
と+
と?
と似ています。それぞれ、下記の回数のマッチを行います。
{n}
直前のパターンにn回マッチ(nは0以上の整数){n,}
直前のパターンにn回以上マッチ(nは0以上の整数){n,m}
直前のパターンにn回以上m回以下のマッチ(nは0以上の整数、mはn以上の整数)
となります。
*
直前のパターンに0回以上マッチ+
直前のパターンに1回以上マッチ?
直前のパターンに0回か1回マッチ
ですので、A*
はA{0,}
と同じ意味、A+
はA{1,}
と同じ意味、A?
はA{0,1}
と同じ意味となります。
{n}
の使い方のサンプルです。A{2}
はAに2回マッチします。
^A{2}BCD$
{n,}
の使い方のサンプルです。A{2,}
はAに2回以上マッチします。
^A{2,}BCD$
{n,m}
の使い方のサンプルです。A{2,4}
はAに2回以上4回以下のマッチをします。
^A{2,4}BCD$