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