$+{name}Perl 正则表达式变量之间以及$-{name}两者用于从 Perl 语句/表达式代码引用同一正则表达式组时有什么区别?
tsh*_*ono 11
虽然$+{name}保存被称为name
标量值的捕获子字符串,$-{name}但指保存具有名称的捕获组的数组。
这是一个小例子:
#!/usr/bin/perl
use strict;
use warnings;
'12' =~ /(?<foo>\d)(?<foo>\d)/; # '1' and '2' will be captured individually
print $+{'foo'}, "\n"; # prints '1'
for (@{$-{'foo'}}) { # $-{'foo'} is a reference to an array
print $_, "\n"; # prints '1' and '2'
}
Run Code Online (Sandbox Code Playgroud)
由于$+{name}只能保存单个标量值,因此它被分配给捕获组的第一个(最左边)元素。
| 归档时间: |
|
| 查看次数: |
301 次 |
| 最近记录: |