php

最短部分に対するマッチ

繰り返し文字である+と*では、繰り返しの最も短い部分にマッチするように
なっています。たとえばパターンが「A+」、文字列「AAA」なら
AAAではなくAにマッチしたところで処理が完了します。

AAAなら、「一番左のA」にマッチします。

preg_match()関数では、3番目の引数に配列を指定すると、
マッチした部分の文字列が配列として格納されます。上の場合だと
1個のAが格納されます。
マッチ後もさらにマッチングを行う関数はpreg_match_all()関数です。

グループ化と選択

一定のパターンをグループにするときは()を使います。
例を挙げると、「(abc){2}」はabcの2回以上の繰り返しを表します。
「abcabc」にマッチしますが、「abc」にはマッチしません。

何れかを表すには「|」を表します。たとえば、「123|456」と書けば、
「123」か「456」にマッチします。

メタ文字 意味
() まとめる
| いずれか

メタ文字をパターンの文字列とする

メタ文字をそのまま文字として使う場合は、
以下のように「\」をつけます。

「.」を表す
\.

「+」の1回以上の繰り返しです。
\++

サンプルコードの実行結果はこちら

-php
-, ,