小编San*_*rix的帖子

全局g正则表达式标志的奇怪行为

my $test = "There was once an\n ugly ducking";
if ($test =~ m/ugly/g) {
    if ($test =~ m/here/g) {
        print 'Match';
    }
}
Run Code Online (Sandbox Code Playgroud)

结果没有输出,但是

my $test = "There was once an\n ugly ducking";
if ($test =~ m/here/g) {
    if ($test =~ m/ugly/g) {
        print 'Match';
    }
}
Run Code Online (Sandbox Code Playgroud)

比赛结果!

如果我从正则表达式中删除g标志,那么第二次内部测试会匹配在$ test中出现的匹配项.我找不到为什么会这样的参考.

regex perl global

5
推荐指数
1
解决办法
188
查看次数

标签 统计

global ×1

perl ×1

regex ×1