perl 特殊变量 $-[0] 和 $+[0] 是什么意思?



我想知道perl特殊变量的含义$-[0]$+[0]

我用谷歌搜索并发现$-表示页面上剩余的行数,$+表示与最后一个搜索模式匹配的最后一个括号。

但我的问题是$-[0]$+[0]在正则表达式的上下文中意味着什么。

让我知道是否需要代码示例。

请参阅有关@+@- perldoc perlvar

$+[0]是整个比赛结束的字符串的偏移量。

$-[0]是上一场成功比赛开始的偏移量。

它们都是数组中的元素(由方括号和数字表示),因此您要搜索 @-(数组)而不是 $-(不相关的标量变量)。

表扬

perldoc perlvar 

解释了 Perl 的特殊变量。如果你在那里搜索@-,你会发现。

$-[0] is the offset of the start of the last successful match. $-[n] is the offset of the start of the substring matched by n-th subpattern, or undef if the subpattern did not match .

添加示例以更好地理解$-[0]$+[0]

还添加了有关变量$+的信息

use strict;
use warnings;
my $str="This is a Hello World program";
$str=~/Hello/;
local $="n"; # Used to separate output 
print $-[0]; # $-[0] is the offset of the start of the last successful match. 
print $+[0]; # $+[0] is the offset into the string of the end of the entire match. 
$str=~/(This)(.*?)Hello(.*?)program/;
print $str;
print $+;                    # This returns the last bracket result match 

输出:

D:perlex>perl perlvar.pl
10                           # position of 'H' in str
15                           # position where match ends in str
This is a Hello World program
 World

相关内容

  • 没有找到相关文章

最新更新