PHPの正規表現(preg系)のパターン修飾子

Pocket

PHPにはpreg_matchやpreg_replaceという関数があります。正規表現を使って検索、置換するためのものです。
これらの関数は「preg_match("/.*/i",$str)」のように使います。この「/.*/i」の「i」の部分がパターン修飾子です。
よく使うものについてまとめます。

「g」

JavaScriptでは、複数回の検索(合致する文字列全て)で使用しますが、PHP(preg系)では「g」は使いません。
検索については「preg_match_all」を使います。
置換については「preg_replace」を使い、「g」を指定しなくても複数回の検索をすることになっています。

「i」

大文字と小文字を区別しません。

「m」

正規表現では、"^"で文字列の先頭、"$"で末尾にマッチしますが、修飾子「m」を使うと改行の直前と直後にもマッチします。

$str="abc123xyz\nabc456xyz";
$ms=preg_match_all("/^abc.*xyz$/m",$str);

「m」を使わないと「abc123xyz\nabc456xyz」にマッチします。
「m」を使うと「abc123xyz」「abc456xyz」にマッチします。

「s」

正規表現の"."は「改行以外の任意の文字」ですが、修飾子「s」を使うと「改行を含む任意の文字」にマッチするようになります。

「u」

UTF-8として処理されます。日本語(漢字)を使う場合に指定するとうまくいく場合があります。

関連記事

[ 2012年10月16日 | カテゴリー: PHP | タグ: , ]

« | »

コメント

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

送信してください。


タグ

カテゴリー

最近の投稿

最近のコメント

固定ページ

アーカイブ

stabucky

写真

メタ情報