我正在使用这种 Perl 正则表达式:
/(^.*)XXX/g
我希望这个正则表达式匹配类型的文本******XXX****XXX***XXX
这样在这种情况下,正则表达式将匹配三次并提供以下结果:******XXX****XXX***
******XXX****
******
但是,当我将这个正则表达式放在这样的列表上下文中时while($_=~/(^.*)XXX/g)
只有一场比赛,它是******XXX****XXX***
我哪里错了?
最佳答案
你需要改变你的循环:
$_ = "******XXX****XXX***XXX";
while(/(.*)XXX/) {
print $1,"\n";
$_=$1;
}
在
$1
中找到匹配的结果而你匹配的变量是 $_
.
关于regex - Perl 正则表达式在列表上下文中只返回一个值,即使可能有多个匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14600301/