コーディング > 正規表現で先頭のひとつに一致

正規表現で先頭のひとつに一致


php の preg_match では先頭から検索してパターンに合致する最後のものを返す。最初のものを得るには?を使う。

例えばこう

  1. $in = "最初の画像<img src="http://最初の画像.jpg"><br>次の画像<img src="http://次の画像.jpg"><br>";
  2. preg_match('/^.*(<img [^>]+src=[\"\']+http:[^>]+>).*/is',$in,$match);
  3. echo $match[1];
この結果は、
<img src="http://次の画像.jpg">

最初に一致するものを得るにはこう

  1. $in = "最初の画像<img src="http://最初の画像.jpg"><br>次の画像<img src="http://次の画像.jpg"><br>";
  2. preg_match('/^.*?(<img [^>]+src=[\"\']+http:[^>]+>).*/is',$in,$match);
  3. echo $match[1];
この結果は、
<img src="http://最初の画像.jpg">

先頭の.*が無くてもいいという指定をするということ。



最終更新:2012年10月26日 11:50