我在构建一个带有重复限定符的regex时遇到了麻烦。在网上找不到一条建议。在
这里有一个字符串要匹配-
abc cde fgi
正则表达式是
^{pr2}$下面是来自redemo.py公司名称:
我从Perl得到了一个类似的输出:
^{3}$我最好留下范围,原因,为什么我必须应用这个正则表达式。在
但问题是:我认为'{2}'限定符是匹配字符串的严格要求,因此解释器将返回5组成功匹配-
1: ''
2: 'abc'
3: ' '
4: 'fgi'
5: ''
出乎意料的是,解释器只返回了3个组,似乎“{2}”限定符被忽略了。在
如果我对regex重复限定符的理解是错误的,有人能评论一下吗?在
有人能建议一个工具来可视化regex是如何逐步解释的吗?在
谢谢
您已经在正则表达式中包含了}。在
{2}
,但是您没有将其包含在匹配组中。这意味着在计算是否存在匹配时计算repeat条件,但是在计算对匹配有贡献的组时不计算repeat条件。取而代之的是,你得到了一个重复的组匹配两次。要获得分配给一个组的内容的两个重复,请在该组的()
中包含{请注意,您分配的组数永远不会超过输入中的
()
对。要获得组的单个重复,必须编写一个循环并重复匹配(或者在Perl中,通过其e
标志在regex中包含代码)。在相关问题 更多 >
编程相关推荐