Python正则表达式findall数字和点

2024-05-17 05:29:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用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,所以我不能只在regex中使用.zip。

最后我想说:

['0.2.1', '0.2.1']

有人能推荐一个更好的正则表达式使用吗?:)


Tags: 文件texttestimportreurl文件名html
1条回答
网友
1楼 · 发布于 2024-05-17 05:29:09
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 .

相关问题 更多 >