让我们说说这个简单的正则表达式
(?P<first>\d+)\.(?P<second>\d+)
它可以匹配“ 123.456”之类的字符串,从而使
first -> 123, second -> 456
根据此示例,是否有办法断言“第一”应等于“第二”,否则输入字符串将不匹配?
答案 0 :(得分:4)
您可以在捕获组中捕获点前的前几位,并在点后使用backreference进行分组1:
(?P<first>\d+)\.(?P<second>\1)
或者您可以通过name引用第一个捕获组:
(?P<first>\d+)\.(?P<second>(?P=first))
根据UnbearableLightness的评论,您可以使用word boundaries \b
或使用锚点^
和$
来声明行的开始和结束。
答案 1 :(得分:2)