如何从同一个Perl正则表达式捕获多个匹配?

前端之家收集整理的这篇文章主要介绍了如何从同一个Perl正则表达式捕获多个匹配?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图解析一个单一的字符串,并从相同的正则表达式条件的同一个字符串中获取多个数据块。我正在解析一个静态的HTML文档(由于未公开的原因,我无法使用HTML解析器来完成此工作)。我有一个表达式,如下所示:
$string =~ /\<img\ssrc\="(.*)"/;

我想要获得$ 1的价值。然而,在一个字符串中,有很多这样的img标签,所以我需要像数组返回的东西(@ 1?)这是可能的吗?

解决方法

作为Jim的答案,使用/ g修饰符(在列表上下文中或循环中)。

但要注意贪婪,你不想要。*匹配超过必要的(不要逃避< =,它们不是特别的)。

while($string =~ /<img\s+src="(.*?)"/g ) {
  ...
}

猜你在找的Perl相关文章