Php 正则表达式匹配img标记中的任何url

Php 正则表达式匹配img标记中的任何url,php,regex,Php,Regex,我需要一个正则表达式,它可以匹配imgsrc标记中的任何url URL可以是“/images/temp.jpg”或“temp1.jpg”,甚至“temp1.jpg”http://www.example.com/temp.jpg?i=123“还是别的什么 我编写了以下代码: preg_match_all('/(href|src)\s*=\s*"([^\s]+\/\/[^\/]+.\/[^\s]+\.(jpg|jpeg|png|gif|bmp))/ixu' 但是它并没有匹配很多URL,包括那些查询

我需要一个正则表达式,它可以匹配imgsrc标记中的任何url

URL可以是“/images/temp.jpg”或“temp1.jpg”,甚至“temp1.jpg”http://www.example.com/temp.jpg?i=123“还是别的什么

我编写了以下代码:

preg_match_all('/(href|src)\s*=\s*"([^\s]+\/\/[^\/]+.\/[^\s]+\.(jpg|jpeg|png|gif|bmp))/ixu'
但是它并没有匹配很多URL,包括那些查询字符串为?i=12345的URL

有人知道如何做到这一点吗


谢谢

先搜索,多年来询问和回答了数百次:

只需替换您可以使用的

<img [^>]*src="([^"]+)"

为什么没有提到img?当img标记没有href属性时,为什么要包含href?似乎您更感兴趣的是检查某个内容是否是有效的图像URL,而不是匹配img标记中指定的某个URL。注意,我提供的正则表达式不检查URL的有效性;它只是基于这样一个事实:src属性中引号中出现的任何内容都应该是有效的URL。我这样做是因为在很多情况下这是一个实际的假设,而你并没有具体说明你真正想要什么。如果您不能提出更好的问题,我将不会进一步更新。

可能重复@Dan:我尝试过,但在我的案例中不起作用。请解释什么是第一次捕获group@I-M-JM抱歉,我有一个输入错误,正确的术语是捕获组。这是基本的正则表达式,你可以通过谷歌搜索找到你需要知道的一切。使用括号
()
指定捕获组。
<img [^>]*src="([^"]+)"[^>]*>
preg_match_all('/(href|src)\s*=\s*"([^\s]+\/\/[^\/]+.\/[^\s]+\.(jpg|jpeg|png|gif|bmp))/ixu'