4

タグからsrc値を抽出しようとしていますが、これまでのところ、src値と文字列の最後の引用符の間の文字列を抽出できるようです。

弦:

<img  border="0"  src="http://i.bookfinder.com/about/booksellers/logo_borderless/amazon_uk.gif" width="89" height="31" alt="">

例:PHPの場合:

preg_match('/src=\"(.*)\"/', $row->find('a img',0), $matches);
if($matches){
   echo $matches[0];
}

プリントアウト src="http://i.bookfinder.com/about/booksellers/logo_borderless/amazon_uk.gif" width="89" height="31" alt=""

しかし、私が本当に印刷したいのは... src="http://i.bookfinder.com/about/booksellers/logo_borderless/amazon_uk.gif"

または可能であれば... http://i.bookfinder.com/about/booksellers/logo_borderless/amazon_uk.gif

正規表現に何を追加する必要がありますか?ありがとう

4

3 に答える 3

10

あなたは実際に非常に近かった>>

Yours:        preg_match('/src=\"(.*)\"/',  $row->find('a img',0), $matches);
Correct one:  preg_match('/src=\"(.*?)\"/', $row->find('a img',0), $matches);

追加?することで、怠惰な一致を要求します.*。つまり、必要になるまでは何でも一致し、できるまでは何も一致しません。"怠惰な演算子がないと、後ろにある最後の二重引用符の前で停止しalt="ます。

于 2012-07-03T00:08:04.800 に答える
7

RegExpの場合:

preg_match('/src="([^"]+)"/', $row->find('a img',0), $matches);
echo $matches[1];

私が正しければ、simple_html_dom_parserライブラリを使用しています。それが本当なら、あなたはただタイプすることができます:

$row->find('a img',0)->src
于 2012-07-02T23:49:25.620 に答える
4

試してみてください、それはあなたのニーズに良いはずです

/src=\"[^\"]+\"/
于 2012-07-02T23:50:51.640 に答える