我一直在阅读 perldoc perlre
,以及正则表达式手册和Stack Overflow上相关的问题,但似乎找不到一个非常有用的表达式:如何知道当前匹配的数量?
有关闭合组匹配的表达式($^N
),第三个匹配内容的表达式(\g{3}
如果我正确理解文档的话),还有$'
,$&
和$`
。但是似乎没有一个变量可以告诉我当前匹配的数量。
这个变量真的不存在吗?如果是这样,是否有任何技术上的原因解释为什么很难实现,或者我只是没有仔细阅读perldoc?
请注意,我对内置变量感兴趣,而不是像使用(${$count++})
这样的变通方法。
为了背景说明,我正在尝试构建一个正则表达式,它将仅匹配某些匹配项(例如,匹配所有字符“E”的出现次数,但不匹配数组中的数字3、7和10的出现次数)。当我尝试构建一个更符合习惯用法的答案时,我遇到了这个问题,以回答这个SO问题。
我想避免将正则表达式作为字符串进行计算,以实际插入3、7和10。
@ISA
不会出现 - 但是所有内容都有文档记录。Perl倾向于没有隐藏功能。您能否举一个比您提供的参考更好的解决问题的示例? - Borodin${^MATCH_COUNT}
,可以达成你想要的效果,请示范一下如何使用它。 - BorodinRegexp::Debugger
模块吗? - tchrist