我不明白为什么这不会返回重复数字的匹配项:
import re
digits = '122223456789'
re.search(r'(\d)\4', digits)
相反,我收到“错误:位置 4 处的组引用无效”
最佳答案
因为 \4
是 python-regex 引擎中的组引用。如果您想指定重复,您应该使用 {}
。
re.search(r'(\d){4}', digits)
或者如果你想匹配 4 个重复的数字,你需要用 \1
引用它,因为 (\d) 是第一个捕获组。
re.search(r'(\d)\1{3}', digits)
演示:
In [5]: re.search(r'(\d)\1{3}', digits).group(0)
Out[5]: '2222'
您可以将组号传递给search()
函数的group()
属性,以获取特定组匹配字符串的结果。或者只传递 0 以获得整体匹配。
关于Python 正则表达式搜索 : repeated digit n times,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42097261/