如何从字符串中提取带分隔符的数字?
How to extract numbers with delimiter from a string?
我正在尝试从文件名中提取带分隔符的数字(用于版本检查目的)。我的文件名为 filename= bacserv.v1.2.6
和 not 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))
我正在尝试从文件名中提取带分隔符的数字(用于版本检查目的)。我的文件名为 filename= bacserv.v1.2.6
和 not 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))