php-使用正则表达式从两个字符串之间提取

php-使用正则表达式从两个字符串之间提取,php,regex,Php,Regex,假设我们有一个字符串:-如何提取/a.jpg 那一个肯定是错误的:#这应该行得通 /<img\s+src="(.*?)"/ /这很有效(请尝试在此处测试) /“*[^”]//有效。也许你用^思考的方向是正确的: 这是可以接受使用正则表达式的少数几种情况之一。如果您想匹配更复杂的HTML,则选择(phpQuery或QueryPath将其简化得非常简单。)只有当src是img标记将具有的唯一属性且始终是第一个属性时,其他答案才会起作用 if (preg_match('/<img\s

假设我们有一个字符串:
-如何提取
/a.jpg

那一个肯定是错误的:
#

这应该行得通

/<img\s+src="(.*?)"/
/这很有效(请尝试在此处测试)


/“*[^”]/

/
有效。

也许你用^思考的方向是正确的:



这是可以接受使用正则表达式的少数几种情况之一。如果您想匹配更复杂的HTML,则选择(phpQuery或QueryPath将其简化得非常简单。)

只有当src是img标记将具有的唯一属性且始终是第一个属性时,其他答案才会起作用

if (preg_match('/<img\s+(?:\w+="[^"]+"\s*)*?src="([^"]+)/', $input, $matches))
  $src = $matches[1];
if(preg_match(')/可能重复的(相关)
#<img src="(.*)[^"]">#   // original
#<img[^>]+src="([^"]*)"#
if (preg_match('/<img\s+(?:\w+="[^"]+"\s*)*?src="([^"]+)/', $input, $matches))
  $src = $matches[1];