SERVICE こんな事ができます

CNTACT ご相談はお気軽に

 ABOUT US こんな会社です



2009/10/27 by マッチー

preg_matchで複数行の検索を行う

正規表現で文字列検索を行いたいときにpreg_matchを使うことがある。

このpreg_match、検索対象の文字列が1行なら特に問題ないのだけど、複数行にまたがるようなときは、上記の書き方だと上手く結果を返してくれない。

file_get_contentsなどでファイルの情報を取得し、さらにその中の一部の情報を取得したいようなとき、1行だけしか検索できないと、都合が悪いことがある。

例えばsample.htmlに上のようなコードがあり、そこを丸々取得したいとする。

上記の書き方だと、こんな結果が返ってきてしまう。

そういうときは、デリミタの後ろにsをつけると良い。

このsは、改行を無視して1行とみなして検索しますよという意味を持つらしい。つまり<div>~</div>を1行とみなしてくれるから、ちゃんと検索結果が返ってくる。