regex之正则表达式可以断言 2 个子匹配项相等吗
kenshinobiy
阅读:173
2025-06-02 22:19:02
评论:0
假设这个简单的正则表达式,
(?P<first>\d+)\.(?P<second>\d+)
它可以匹配像“123.456”这样的字符串,
first -> 123, second -> 456
根据这个例子,有没有办法断言“first”应该等于“second”,否则输入字符串将不匹配?
请您参考如下方法:
您可以捕获捕获组中点之前的第一位数字并使用 backreference在第 1 组的点之后:
(?P<first>\d+)\.(?P<second>\1)
或者您可以通过name 引用第一个捕获组:
(?P<first>\d+)\.(?P<second>(?P=first))
根据 UnbearableLightness 的评论你可以使用 word boundaries \b或使用 anchor ^和 $断言行的开始和结束。
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。



