小编Sim*_*one的帖子

为什么积极的前瞻导致我的Perl正则表达式中的捕获?

我无法理解为什么这段代码有效:

$seq = 'GAGAGAGA';
my $regexp = '(?=((G[UCGA][GA]A)|(U[GA]CG)|(CUUG)))'; # zero width match
while ($seq =~ /$regexp/g){ # globally
     my $pos = pos($seq) + 1; # position of a zero width matching
     print "$1 position $pos\n";
}
Run Code Online (Sandbox Code Playgroud)

我知道这是一个零宽度匹配,它不会把匹配的字符串放在$&中,但为什么它把它放在1美元?

谢谢!

perl matching lookahead

2
推荐指数
1
解决办法
921
查看次数

标签 统计

lookahead ×1

matching ×1

perl ×1