项目版本号正则

发布时间 2023-12-27 19:28:51作者: 霸气小青年

我试图检查一个输入字符串,其中包含正确格式的版本号.

vX.X.X
Run Code Online (Sandbox Code Playgroud)

其中X可以是任意数量的数字,例如:

v1.32.12   or  v0.2.2   or v1232.321.23
Run Code Online (Sandbox Code Playgroud)

我有以下正则表达式:

请注意,[\d.]应该匹配数字或点中的任何一个字符.

v(\d+)\.(\d+)\.\d+

Run Code Online (Sandbox Code Playgroud)

使用\d+匹配一个或多个数字字符.

例:

>>> import re
>>> s = ['v1.32.12',  'v0.2.2'  , 'v1232.321.23', 'v1.2.434312543898765']
>>> [i for i in s if re.match(r'^(?!.{20})v(\d+)\.(\d+)\.\d+$', i)]
['v1.32.12', 'v0.2.2', 'v1232.321.23']
>>> 

Run Code Online (Sandbox Code Playgroud)

(?!.{20})开始时的负向前瞻在匹配之前检查字符串长度.如果字符串长度至少为20,那么它将立即失败而不对该特定字符串进行匹配.