我可以在Perl正则表达式中使用命名组来获得散列中的结果吗?

是否可以像Python一样使用Perl的正则表达式语法执行命名组匹配?我总是在匹配后将$n值绑定到专有名称,因此如果可能的话,我会发现在正则表达式中这样做更方便

Python是这样做的:

&gt&燃气轮机&燃气轮机;进口稀土
&燃气轮机&燃气轮机&燃气轮机;regex=re.compile(r'(?P<count>\d+))
&燃气轮机&燃气轮机&燃气轮机;match=regex.match('42')
&燃气轮机&燃气轮机&燃气轮机;打印match.groupdict()
{'count':'42'}

我知道?p表明它是一个特定于Python的正则表达式特性,但我希望它以不同的方式出现在Perl中,或者是后来添加的。在Perl中有没有类似的方法来获取结果哈希

Perl使用(?<NAME>模式)指定名称。您必须使用%+散列来检索它们

$variable=~/(?<count>\d+);
打印“计数为$+{Count}”;

但这仅在Perl5.10及更高版本上受支持

发表评论