首页 > 解决方案 > 查找所有长度模式的正则表达式函数?

问题描述

如何制作一个匹配单个字符作为一个组以及重复序列的正则表达式?

这是我找到的(不是我自己制作的):https ://regex101.com/r/Vdhjld/1

正则表达式是

((?P<X>\S.*?)(?:, (?P=X))+)

字符串是

1, 2, 3, 1, 2, 3, 1, 2, 3, 2, 5, 2, 5, 1

我希望它能够Group 'X'在字符串的末尾获得一个。现在它只是返回1, 2, 3, 1, 2, 3, 1, 2, 32, 5, 2, 5作为完整匹配,但我希望它返回1以及完整匹配。我怎样才能做到这一点?

标签: pythonregexpython-3.xstringregex-greedy

解决方案


您可以使用交替来匹配您的原始模式或使用否定字符类[^\s[\]]来匹配除空白字符[]或逗号之外的任何字符

((?P<X>\S.*?)(?:, (?P=X))+|[^\s,[\]])

正则表达式演示


推荐阅读