Python 正则表达式搜索 : repeated digit n times

标签 python regex python-3.x

我不明白为什么这不会返回重复数字的匹配项:

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/

相关文章:

python - 如何更改默认 Python 版本?

java - SimpleDateFormat 模式到 Java 正则表达式的转换

python - 遍历列表,比较值并删除重复项 - Python

python - 将属性分配给变量时忽略 Setter (Python 3.4)

dictionary - 遍历自引用字典的 Pythonic 方式

python - 将 Python 3.5 项目转换为 Jython - UnicodeDecodeError : 'unicodeescape' codec can't decode bytes in position 4-10: illegal Unicode character

javascript - 通过 Django 模板将对象传递给 javascript

python - 计算合并字符串的分数

regex - 转到 HTTP 服务器 : Handling Routes with Map

mysql - 使用正则表达式使用 mysql 使用转义字符更新列值