php匹配img标签的src内容,匹配过头了?

$res = preg_match_all('/src="(.+\.(png|jpg))"+?/', '<img src="/Public/attached/image/20170227/20170227143202_25223.jpg" alt="" /><img src="Public/attached/image/20170227/20170227143202_25223.jpg" alt="" />', $matchs);

这个结果会一直匹配到第二个.jpg那里,我要怎么写才能匹配出两个图片的结果,而不是只有一个结果?

阅读 3.5k
1 个回答

你这是正则写错了,'/src="(.+.(png|jpg))"+?/'其中只有第一个,也就是外面的捕获组使用了非贪婪模式,里面的'.+'没使用非贪婪模式,改成'.+?'应该就可以了。(这个点不睡也是没谁了。。)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题