4

我有一个字符串,在其中我有一个图像:

"<p><img src="http://yahoo.com/testfolder/userdata/editoruploadimages/confused man.jpg" /></p>"

我无法使用正则表达式获取图像 URL。我的代码是:

preg_match_all("/src=([^\\s]+)/", $questArr_str, $images);

此代码在遇到图像名称中的空格时停止执行。它只返回"http://yahoo.com/testfolder/userdata/editoruploadimages/confused

返回的字符串应该是: "http://yahoo.com/testfolder/userdata/editoruploadimages/confused man.jpg"

4

4 回答 4

13

我会抓住引号内的所有内容:

preg_match_all('/src="([^"]+)"/', $questArr_str, $images);
于 2013-06-18T08:31:11.920 回答
8

读取的部分([^\s]+)意味着选择任何不是空格的东西。

也许尝试类似:

/src="([^"]+)"/

这是选择不是双引号的任何内容。

于 2013-06-18T08:30:26.433 回答
1

感谢每一个人帮助我。

我使用以下方法找到了我的解决方案:

pattern = "/src=([^\\\"]+)/"
于 2013-06-19T11:43:02.890 回答
1

这是一种使用正则表达式匹配<img />标签src属性和/或内容的简单方法。html/PHP

样本:

<img class="img img-responsive" title="publisher.PNG" src="media/projectx/agent/author/post/2/image/publisher.PNG" alt="" width="80%" />

仅匹配src属性内容使用

preg_match("%(?<=src=\")([^\"])+(png|jpg|gif)%i",$input,$result)

$result[0]将输出media/projectx/agent/author/post/2/image/publisher.PNG

匹配 `src' 属性和它的内容使用

preg_match("%src=\"([^\"])+(png|jpg|gif)\"%i",$input,$result)

$result[0]将输出src="media/projectx/agent/author/post/2/image/publisher.PNG"

于 2016-09-15T13:01:23.170 回答