Python正则表达式找到所有数字和点

时间:2008-12-10 15:33:10

标签: python regex findall

我正在使用re.findall()从HTML文件中提取一些版本号:

>>> import re
>>> text = "<table><td><a href=\"url\">Test0.2.1.zip</a></td><td>Test0.2.1</td></table> Test0.2.1"
>>> re.findall("Test([\.0-9]*)", text)
['0.2.1.', '0.2.1', '0.2.1']

但我想只得到那些不以点结尾的那些。 文件名可能并不总是.zip所以我不能只在正则表达式中粘贴.zip。

我想结束:

['0.2.1', '0.2.1']

有人建议使用更好的正则表达式吗? :)

1 个答案:

答案 0 :(得分:14)

re.findall(r"Test([0-9.]*[0-9]+)", text)

或者,有点短:

re.findall(r"Test([\d.]*\d+)", text)

顺便说一下 - 你不能逃避角色类中的点:

[\.0-9]  // matches: 0 1 2 3 4 5 6 7 8 9 . \
[.0-9]   // matches: 0 1 2 3 4 5 6 7 8 9 .