是否可以像 Python 一样在 Perl 的正则表达式语法中执行命名组匹配?我总是在匹配后将 $n
值绑定(bind)到专有名称,因此如果可能的话,我会发现在正则表达式本身中执行此操作更方便。
Python 是这样做的:
>>> import re
>>> regex = re.compile(r'(?P<count>\d+)')
>>> match = regex.match('42')
>>> print match.groupdict()
{'count': '42'}
我知道 ?P
表示它是 Python 特有的正则表达式功能,但我希望它以不同的方式在 Perl 中或稍后添加。有没有办法在 Perl 中以类似的方式获取结果哈希?
最佳答案
Perl 使用 (?<NAME>pattern)
指定名称捕获。您必须使用 %+
哈希来检索它们。
$variable =~ /(?<count>\d+)/;
print "Count is $+{count}";
这仅在 Perl 5.10 及更高版本上受支持。
关于python - 我可以在 Perl 正则表达式中使用命名组来获取哈希结果吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/288968/