如何从字符串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
关于如何解决这个问题的任何建议?
提前致谢
答案 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')