【PHP】初心者用の正規表現の覚書

  • 投稿 : 2016-11-15

最短マッチ(最短一致)

//最長(デフォルト)
preg_match("/<div>(.*)</div>/", $subject, $matches);

//最短マッチ
preg_match("/<div>(.*?)</div>/", $subject, $matches);

?をつけると、最短マッチになります。</div>が最初に見つかったところで切り上げてくれるようになります。

複数行、パターン修飾子「s」

//. (ドット)を改行文字にもマッチさせる
preg_match("/<div>(.*)</div>/s", $subject, $matches);
sを付けると、. (ドット)を改行文字にもマッチするようになるので、複数行にわたってマッチさせることが可能です。

s (PCRE_DOTALL)
この修飾子を設定すると、パターン中のドットメタ文字は 改行を含む全ての文字にマッチします。 これを設定しない場合は、改行にはマッチしません。 この修飾子は、Perl の /s 修飾子と同じです。 [^a] のような否定の文字クラスは、 この修飾子の設定によらず、常に改行文字にマッチします。
PHP: 正規表現パターンに使用可能な修飾子 - Manual

サンプル

パターン説明
<[^>]*> 「<」から「>」までの範囲にマッチする。
/[ぁ-んァ-ヶー一-龠]+/u「ひらがな、カタカナ、漢字」が含まれる



参考

PHP: PCRE - Manual
PHP: 正規表現パターンに使用可能な修飾子 - Manual

スポンサーリンク
タグ#PHP#code