如何从字符串中提取带分隔符的数字?

How to extract numbers with delimiter from a string?

我正在尝试从文件名中提取带分隔符的数字(用于版本检查目的)。我的文件名为 filename= bacserv.v1.2.6not with quotes ('')。我如下使用 RegEx,但 RegEx 将输入作为带引号的 'bacserv.v1.2.6'。我的预期输出是 1.2.6"1.2.6"。有人可以帮忙吗?

import re
matches = re.findall('\d+', 'bacserv.v1.2.6')
print(matches)

输出:

['1', '2', '6']

您可以将您的正则表达式结果更进一步并应用 '.'.join(matches)

使用 re.search,模式略有不同:

import re
match = re.search('\d+.\d+.\d+', 'bacserv.v1.2.6')
if match:
   version = match.group()

下面的怎么样?假设版本号总是跟在文件名中的“.v”之后:

import re
m = re.search('(\.v)([\d\.]+)', 'bacserv.v1.2.6')
print(m.group(2))