0
我在正则表达式中创建了两个命名的捕获变量,第二个似乎没有返回任何值,而第一个可以。我不知道为什么......这里是代码。Perl命名捕获组
my $string = 'test [google] another test [windows]';
my $regex=qr/\w*\[{1}(?<firstBracket>\w+)\]{1}(?<secondBracket>\w*)/ip;
$string=~ /$regex/;
say $+{secondBracket};
我期待“secondBracket”将会返回。 我可以做$+{firstBracket}
,但不是第二个...有人可以帮忙吗?
谢谢。
空间不是在你的模式描述。量词{1}无用,请删除它们。 –
不要在void上下文中使用'm //'。在使用任何捕获变量之前,总是检查匹配是否成功。 – melpomene