使用正则表达式从简短的HTML片段中提取一些数字

时间:2013-06-14 09:13:30

标签: python regex

我有一个像下面这样的字符串,我希望得到两个数字“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()

2 个答案:

答案 0 :(得分:1)

使用re.findall

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

但你可能想要缩小你的正则表达式。

编辑:

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

答案 1 :(得分:0)

pattern = "(\d+).*(\d+)"
ret = re.search(pattern,content)
print ret.group(1), ret.group(2)