python正则表达式,从字符串中提取数字集

时间:2014-12-02 10:57:06

标签: python regex string

如何从字符串24获取数字200"Size:24 Resp_code:200"

通过在python中使用re?,我尝试过使用\ d +但是我只得到了24 另外我也试过这个:

import re

string2 = "  Size:24 Resp_code:200"

regx = "(\d+) Resp_code:(\d+)"

print re.search(regx, string2).group(0)
print re.search(regx, string2).group(1)

这里的输出是:

24 Resp_code:200 
24 

关于如何解决这个问题的任何建议?

提前致谢

3 个答案:

答案 0 :(得分:4)

组0包含整个匹配的字符串。改为提取组1,组2。

>>> string2 = "  Size:24 Resp_code:200"
>>> regx = r"(\d+) Resp_code:(\d+)"
>>> match = re.search(regx, string2)
>>> match.group(1), match.group(2)
('24', '200')
>>> match.groups()  # to get all groups from 1 to however many groups
('24', '200')

或使用re.findall

>>> re.findall(r'\d+', string2)
['24', '200']

答案 1 :(得分:1)

使用:

print re.search(regx, string2).group(1) // 24
print re.search(regx, string2).group(2) // 200

group(0)打印正则表达式匹配的整个字符串。 group(1)首次匹配且group(2)是第二次匹配的位置。

答案 2 :(得分:0)

检查doc

  

如果只有一个参数,则结果为单个字符串;如果有多个参数,则结果是一个元组,每个参数有一个项目。如果没有参数,group1默认为零(返回整个匹配)

你做得对,但是小组不是从0开始,而是1,group(0)将打印整场比赛:

>>> re.search(regx, string2).group(1,2)
('24', '200')