python - 使用 Python Regex 匹配顺序重复的括号

标签 python regex

基本上我正在尝试使用带有正则表达式的 python 找到一系列连续的重复模式:

(X[0-9]+)+

例如,给定输入字符串:

YYYX4X5Z3X2

获取结果列表:

["X4X5", "X2"]

但是我得到的是:

["X5", "X2"]

我已经在 regexpal 上测试了正则表达式并验证它是正确的,但是,由于 python 处理“()”的方式,我无法获得所需的结果。有人可以建议吗?

最佳答案

将您的捕获组改为非捕获 (?:...) 组 ...

>>> import re
>>> re.findall(r'(?:X[0-9]+)+', 'YYYX4X5Z3X2')
['X4X5', 'X2']

另一个例子:

>>> re.findall(r'(?:X[0-9]+)+', 'YYYX4X5Z3X2Z4X6X7X8Z5X9')
['X4X5', 'X2', 'X6X7X8', 'X9']

关于python - 使用 Python Regex 匹配顺序重复的括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27613569/

相关文章:

python - 在 DJANGO CRUD 数据库应用程序中创建父/主条目然后将关联数据字段添加到父/主条目的最佳方法是什么?

python - 第一个字符被删除(正则表达式)

regex - perl生成字符串来匹配正则表达式

javascript - 用于检查字符串格式的正则表达式

java - 使用 Tuckey 的 URL 重写过滤器向 URL 添加尾部斜杠

python-3.x - Python 3 对象构造 : which is the most Pythonic/the accepted way?

python - 是否可以写入当前正在读取的 QBuffer?

python - Mac OS X Python ctypes cdll 错误 : image not found

python - 为什么新的 Conda 环境没有像 numpy 这样的包?

regex - 如何在最后一次模式出现时/之后对齐?