首先,此问题之前可能已被问过,但我不确定要搜索的短语。
我有一个字符串:
Maaaa
我有一个模式:
AAA
我想要匹配两次,给我开始索引为1和2.但当然我只得到一个匹配(开始索引1),因为正则表达式引擎吞噬所有3“a”s而不能再次使用它们,给我留下一个不匹配的“a”。
我该如何解决这个问题?
谢谢!
答案 0 :(得分:9)
您可以使用前瞻断言查找a后跟2 a's
a(?=aa)
答案 1 :(得分:0)
man perlre
联机帮助页建议:
my @a;
"Maaaa" =~ /aaa(?{push @a,$&})(*FAIL)/;
print join "\n",@a;
print "\n";
产生
aaa
aaa