« PHP:x桁の数字をランダムに作成する | メイン | PHP:エスケープシークエンスについて »

2005年09月08日

PHP:メタ文字について

正規表現の基本となるメタ文字の一覧です。
メタ文字とは、*や+など、正規表現において文字単体で特殊な意味を持つ文字です。

.
(ピリオド)
「.(ピリオド)」1つは、任意の1文字にマッチする。
* 直前の正規表現を0回以上繰り返す。"{0,}"と同じ意味となる。

例1)正規表現"wing*"は、winやwing、wingggなどにマッチする。
例2)正規表現"w(in)*g"は、wgやwing、winingなどにマッチする。
例3)".*"とすると、任意の長さの文字列にマッチする。
"S.*wing"は、S wing、STUDIO WINGなどにマッチする。
+ 直前の正規表現を1回以上繰り返す。 "{1,}" と同じ意味となる。
? 直前の正規表現を1回以上繰り返す。"{0,1}" と同じ意味となる。
^ 文字列の先頭にマッチする。

例1)正規表現"^wing"は、文字列の先頭にあるwingのみにマッチする。
$ 文字列の末尾にマッチする。

例1)正規表現"wing$"は、文字列の末尾にあるwingのみにマッチする。
\ メタ文字をエスケープする。

正規表現においてピリオドや*などの文字はメタ文字として使用され、本来とは異なる使われ方をしている場合があるので、そういった文字をメタ文字としてではなく、本来通りの文字としてマッチングさせたい場合には、メタ文字の直前に\を置き、エスケープする必要がある。

例1)ピリオドにマッチングさせたい場合には、「\.」とする。
例2)\自体を表す場合には、\\とする。
| パターン論理和を表す。何種類かの正規表現にマッチさせたい場合などに使用する。

例1)"I like (PHP|JAVA|FLASH)"は、「I like PHP」や「He likes Perl, but I like FLASH」などにマッチする。
[] 文字の集合(文字クラス)を表す。
{} 正規表現の繰り返しを表す。(量指定子)

投稿者 wing : 2005年09月08日 18:58

コメント