假设我正在浏览一个原始html页面,寻找这个正则表达式.(最后的引号是有意的).
m/(https?:\/\/.*?(?:'|"))/
Run Code Online (Sandbox Code Playgroud)
这种模式很可能匹配~100次.什么是常见的perl习语/迭代所有捕获组匹配列表的快速方法?
ste*_*ema 58
来自perlretut(非常精细的教程)
while ($x =~ /(\w+)/g) {
print "Word is $1, ends at position ", pos $x, "\n";
}
Run Code Online (Sandbox Code Playgroud)
您可以while与g修改器一起使用来迭代所有匹配项,同时$1获取捕获组1的内容,在本示例中,您也可以获得该位置pos.
全局匹配' g'修饰符返回列表上下文中捕获的匹配列表:
say $_ for $str =~ /un($wanted)/g; # Prints only $wanted
Run Code Online (Sandbox Code Playgroud)