用Python正则表达式匹配顺序重复的方括号

2024-09-29 03:30:25 发布

您现在位置:Python中文网/ 问答频道 /正文

基本上,我尝试使用python和regex查找一系列连续的重复模式:

(X[0-9]+)+

例如,给出输入字符串:

^{pr2}$

获取结果列表:

^{3}$

然而,我却得到了:

["X5", "X2"]

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


Tags: 字符串列表方式模式建议regexx2x5
3条回答

您需要为第一个模式提供一个非捕获组(?:<pattern>)

((?:X[0-9]+)+)

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

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

另一个例子:

^{pr2}$

像这样修改你的模式

((?:X[0-9]+)+)

Demo

^{pr2}$

相关问题 更多 >