基本上我正在尝试使用带有正则表达式的 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/