我正在尝试编写正则表达式来匹配可执行版本号 它可以通过两种方式提供:
MAJOR.MINOR.TINY
MAJOR.MINOR.TINY.BUILD_NUMBER
我不需要解析这些值,只需检查匹配。所以,我可以:
^\d+[\.\d+]*$
。好的,但是这个正则表达式将匹配包含5个或更多版本部分的字符串,即1.2.3.4.5
。此外,它将匹配1..2.3
之类的字符串。做^[as many digits as you want and only one .]{3,4}$
之类的事情会很棒。
P.S。当然,我可以先查看^(\d*)\.(\d*)\.(\d*)$
这样的内容,如果不匹配则可以查看^(\d*)\.(\d*)\.(\d*)\.(\d*)$
。但也许有更好(更智能)的方法来做到这一点。
我使用re
python模块来检查匹配:
import re
version_regexp = re.compile(r'^\d+[\.\d+]*$')
versions = ['dsvfsdf',
'1.a.3',
'1.2.4',
'1.4..5.6',
'0.3.1',
'a.b.c.d',
'1,2,3']
for i, sample in enumerate(versions):
print('Sample[%d]: %s' % (i, True if version_regexp.match(sample) else False))
提前谢谢!
答案 0 :(得分:4)
正则表达式应该像re.compile(r'^\d+(\.\d+){2,3}$')