试图解决我的Perl脚本的问题我终于可以打破它这种情况:同样的正则表达式不匹配两次
my $content = 'test';
if($content =~ m/test/g) {
print "1\n";
}
if($content =~ m/test/g) {
print "2\n";
}
if($content =~ m/test/g) {
print "3\n";
}
输出:
1
3
我的真实案例就是有点不同,但最后它是一回事:我很困惑为什么正则表达式2不匹配。有没有人对此有过解释?我意识到/ g似乎是原因,当然这在我的例子中是不需要的。但(为什么)是这种输出正常行为?
from'man perlre':g和c 全局匹配,并保留 匹配失败后的当前位置。与i,m,s和x不同,这两个标志会影响 正则表达式的使用方式,而不是正则表达式本身。请参阅perlretut中的“在Perl中使用常规的 表达式”以获取g 和c修饰符的进一步解释。 – niry