正则表达式从具有多个URL的字符串中获取图像URL

时间:2017-07-03 09:39:09

标签: regex

有了这个文字:

<div align="center"><img src="media/k2/local/594b89d436f4b.jpeg" border="0" alt="" /><br /><br /><img src="media/k2/local/594b89d59fe0b.jpeg" border="0" alt="" /><br /><br /><img src="media/k2/local/594b89d68659f.jpeg" border="0" alt="" /><br /><br /><img src="media/k2/local/594b89d7289b6.jpeg" border="0" alt="" /><br /><br /><img src="media/k2/local/594b89d7cc2db.jpeg" border="0" alt="" /><br /><br /><img src="media/k2/local/594b89d8e3c3d.jpeg" border="0" alt="" /><br /><br /><img src="media/k2/local/594b89d9c732d.jpeg" border="0" alt="" /></div>

<img src="media/k2/local/594b89d436f4b.jpeg" border="0" alt="" />

<img src="media/k2/local/2.jpeg" border="0" alt="" />

我使用以下正则表达式来严格图像网址:
<img(.+)src=[\'"](.+?)[\'"](.*?)\>

当图像被换行符分开时,这是正常的。

从上面示例的第一行开始,当我想要获取所有这些时,它只需要最后一个URL。第二行和第三行,我正确地获取了URL。

演示: https://regex101.com/r/uXWFnW/2

如何修改我的正则表达式以获取同一行中的所有网址? (网址必须适合第2组)

提前致谢。

1 个答案:

答案 0 :(得分:1)

尝试以下正则表达式:

students_controller

我在第一个<img(.+?)src=[\'"](.+?)[\'"](.*?)\> 之后添加了?,使此搜索非贪婪。