"$ ^ N"和"$ +"之间有什么区别?

sid*_*com 5 regex variables perl

有人能告诉我一个例子,它展示了这两个变量的不同行为($ ^ N和$ +)?

Sin*_*nür 8

来自perldoc perlvar:

$+:文本与上一个成功搜索模式的最后一个括号匹配.

$^N:最近成功搜索模式最近关闭的使用组(即具有最右边右括号的组)匹配的文本.

这应该说明不同之处:

#!/usr/bin/perl

use strict; use warnings;

my $s = '12345';

if ( $s =~ /(1([0-9]))/ ) {
    print "$_\n" for $+, $^N;
}
Run Code Online (Sandbox Code Playgroud)

输出:

2
12