我很困惑在Python中返回多个组.我的RegEx是这样的:
lun_q = 'Lun:\s*(\d+\s?)*'
Run Code Online (Sandbox Code Playgroud)
我的字符串是
s = '''Lun: 0 1 2 3 295 296 297 298'''`
Run Code Online (Sandbox Code Playgroud)
我返回一个匹配的对象,然后想要查看这些组,但它显示的是最后一个数字(258):
r.groups()
(u'298',)
Run Code Online (Sandbox Code Playgroud)
为什么不回归0,1,2,3,4
等等?
我正在使用python解析日志,需要从中快速获取一些值
这是简单的等效正则表达式和用法示例
pat = re.compile("(1(2[3456]+2)+1)*")
Run Code Online (Sandbox Code Playgroud)
它没有按预期工作,只有pat.match()返回最后一个匹配组.groups()
这类问题最简单的解决方案是什么?
更新(因为维基引擎说使用编辑而不是创建新帖子):
当然,我需要重复比赛.
to_match="1232112542254211232112322421"
Run Code Online (Sandbox Code Playgroud)
正则表达式需要递归地应用两次.我能忍受,但有什么选择吗?
我正在尝试匹配字符串中的一对数字并将其捕获成组,但我似乎只能捕获最后一组.
Regex:
(\d\d){1,3}
Run Code Online (Sandbox Code Playgroud)
输入字符串:123456 789101
比赛1:123456
第1组:56
第2场比赛:789101
第1组:01
我要的是捕捉到所有的组是这样的:第1场:123456
1组:12
组2:34
组3:56
*更新
看起来Python不允许你捕获多个组,例如在.NET中你可以在一次传递中捕获所有组,因此re.findall('\ d\d','123456')完成这项工作.