以下代码将输出
ac | a | bbb | c
。 #!/usr/bin/env perl
use strict;
use warnings;
# use re 'debug';
my $str = 'aacbbbcac';
if ($str =~ m/((a+)?(b+)?(c))*/) {
print "$1 | $2 | $3 | $4\n";
}
似乎失败的匹配不会重置捕获组变量。 我错过了什么?
perl -E'"a"=~/(.)/; "b"=~/(..)/; say $1;'
- ikegami