0

我有一个像下面这样的字符串,我想同时获得两个数字“28”和“1”,但现在我只能通过我的代码获得“28”。请帮我解决一下这个。

import re
content="""<span class="lineNum">      28 </span><span class="lineCov">          1 : get_pid_file(const char *file, pid_t *pid)</span>"""
pattern = "(\d+)"
ret = re.search(pattern,content)
if ret:
   print "find: %s" % ret.group()
4

2 回答 2

1

使用re.findall,

>>> re.findall(r"\d+", content)
['28', '1']

但是您可能想缩小您的正则表达式的范围。

编辑:

您可能希望将您的正则表达式更改为某些变体,r"<span.*?>.*?(\d+).*?</span>"以仅匹配 span 标签内的数字。

于 2013-06-14T09:16:39.937 回答
0
pattern = "(\d+).*(\d+)"
ret = re.search(pattern,content)
print ret.group(1), ret.group(2)
于 2013-06-14T09:21:06.437 回答