正则表达式 - 如何在第一次出现角色时停止

mk_*_*_89 4 php c# java regex perl

我试图从标签中提取src值,到目前为止我似乎能够提取字符串中src值和最终引号之间的字符串

串:

<img  border="0"  src="http://i.bookfinder.com/about/booksellers/logo_borderless/amazon_uk.gif" width="89" height="31" alt="">
Run Code Online (Sandbox Code Playgroud)

例如在PHP中:

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

打印出来 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

我应该在正则表达式中添加什么?谢谢

Ωme*_*ega 10

你实际上非常接近>>

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

通过添加?你对匹配.*懒惰的请求,这意味着它将匹配任何东西,直到需要,而不是任何东西,直到可以.如果没有懒惰的操作符,它将在最后一个双引号前停止,"后面是后面的alt=".


Ser*_*kyi 6

对于RegExp:

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

如果我是对的,你正在使用simple_html_dom_parser库.如果这是真的你可以输入:

$row->find('a img',0)->src
Run Code Online (Sandbox Code Playgroud)