快速正则表达式问题。
我试图在 python 中捕获一个捕获组的多个实例(不要认为它是特定于 python 的),但随后的捕获似乎覆盖了之前的捕获。
在这个过度简化的示例中,我实际上是在尝试拆分一个字符串:
x = 'abcdef' r = re.compile('(\w){6}') m = r.match(x) m.groups() # = ('f',) ?!?我想获取
('a', 'b', 'c', 'd', 'e', 'f')
,但是因为正则表达式会覆盖后续捕获,所以我得到 ( 'f',)
这就是正则表达式的行为方式吗?有没有一种方法可以做我想做的事而不必重复语法六次?
提前致谢!
安德鲁
最佳答案
恐怕你不能为此使用群组。每个组只能匹配一次,我相信所有的正则表达式都是这样工作的。一种可能的解决方案是尝试使用 findall() 或类似方法。
r=re.compile(r'\w')
r.findall(x)
# 'a', 'b', 'c', 'd', 'e', 'f'
关于python - 具有多个匹配项的正则表达式组捕获,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5598340/