我正在使用这种perl正则表达式:
/(^.*)XXX/g
Run Code Online (Sandbox Code Playgroud)
我希望这个正则表达式匹配该类型的文本
******XXX****XXX***XXX
Run Code Online (Sandbox Code Playgroud)
所以在这种情况下,正则表达式将匹配3次并提供以下结果:
******XXX****XXX***
******XXX****
******
Run Code Online (Sandbox Code Playgroud)
但是,当我把这个正则表达式放在这样的列表上下文中时
while($_=~/(^.*)XXX/g)
Run Code Online (Sandbox Code Playgroud)
只有一场比赛,而且是
******XXX****XXX***
Run Code Online (Sandbox Code Playgroud)
我哪里错了?
你需要改变你的循环:
$_ = "******XXX****XXX***XXX";
while(/(.*)XXX/) {
print $1,"\n";
$_=$1;
}
Run Code Online (Sandbox Code Playgroud)
匹配的结果是在$1您匹配的变量时找到的$_.