正規表現で先頭のひとつに一致
php の preg_match では先頭から検索してパターンに合致する最後のものを返す。最初のものを得るには?を使う。
例えばこう
$in = "最初の画像<img src="http://最初の画像.jpg"><br>次の画像<img src="http://次の画像.jpg"><br>";
preg_match('/^.*(<img [^>]+src=[\"\']+http:[^>]+>).*/is',$in,$match); echo $match[1];
この結果は、
<img src="http://次の画像.jpg">
最初に一致するものを得るにはこう
$in = "最初の画像<img src="http://最初の画像.jpg"><br>次の画像<img src="http://次の画像.jpg"><br>";
preg_match('/^.*?(<img [^>]+src=[\"\']+http:[^>]+>).*/is',$in,$match); echo $match[1];
この結果は、
<img src="http://最初の画像.jpg">
先頭の.*が無くてもいいという指定をするということ。
最終更新:2012年10月26日 11:50