相关疑难解决方法(0)

RegEx有多个组?

我很困惑在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 regex

34
推荐指数
4
解决办法
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)

正则表达式需要递归地应用两次.我能忍受,但有什么选择吗?

python regex

5
推荐指数
1
解决办法
1156
查看次数

正则表达式匹配捕获组一次或多次

我正在尝试匹配字符串中的一对数字并将其捕获成组,但我似乎只能捕获最后一组.

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')完成这项工作.

python regex

3
推荐指数
1
解决办法
1万
查看次数

标签 统计

python ×3

regex ×3