python - 我可以在 Perl 正则表达式中使用命名组来获取哈希结果吗?

标签 python regex perl

是否可以像 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/

相关文章:

python - 将控制台输出写入 python 中的文件

python - 为什么 `eval` 在 Python 类函数中不起作用?

python - PyTorch - 在 torch.sort 之后取回原始张量顺序的更好方法

使用 Tor 作为代理时 Python urllib2 超时?

regex - 如何在正则表达式中匹配特定于语言的字符?

Perl 字符串的性能

XML::在 perl 中很简单,带有混合的 xml 文件

Python 套接字绑定(bind)到 3 个网络接口(interface)中的 2 个

regex - 无法通过 WWW::Mechanize 跟踪图像链接

Python正则表达式替换匹配文本