本文中的正则表达式符合 要点: 1.标准的版本号必须采用X.Y.Z的格式,且为非负的整数,且禁止在数字前方补零。 其中X为主版本号、Y是次版本号、Z为修订号。 正则表达式如下:
(([0-9]|([1-9]([0-9]*))).){2}([0-9]|([1-9]([0-9]*)))#[0-9]|([1-9]([0-9]*))意思为0-9,或者大于10的数字,即首位不能为0复制代码
加上分隔符重复两遍表示了X.Y.,最后一个大括号代表了Z 2.先行版本号可以被标注在修订版之后,先加上一个连接号,再加上一连串以句点分隔的标识符来修饰(没有位数限制)。标识符必须由 ASCII 字母数字和连接号 ([0-9A-Za-z-]) 组成。数字型的标识符禁止在前方补零。 先行版本号的正则表达式如下:
[-](([0-9A-Za-z]|([1-9A-Za-z]([0-9A-Za-z]*)))[.]){0,}([0-9A-Za-z]|([1-9A-Za-z]([0-9A-Za-z]*)))复制代码
首位不能为0的处理,可参考要点1 3.版本编译元数据可以被标注在修订版或先行版本号之后,先加上一个加号,再加上一连串以句点分隔的标识符来修饰。标识符必须由 ASCII 字母数字和连接号 ([0-9A-Za-z-]) 组成。 版本编译元数据的正则表达式如下:
[+](([0-9A-Za-z]{1,})[.]){0,}([0-9A-Za-z]{1,})复制代码
总正则表达式如下:
^(([0-9]|([1-9]([0-9]*))).){2}([0-9]|([1-9]([0-9]*)))([-](([0-9A-Za-z]|([1-9A-Za-z]([0-9A-Za-z]*)))[.]){0,}([0-9A-Za-z]|([1-9A-Za-z]([0-9A-Za-z]*)))){0,1}([+](([0-9A-Za-z]{1,})[.]){0,}([0-9A-Za-z]{1,})){0,1}$复制代码
小工具: