用于将先前版本与 1.11.14 匹配的正则表达式
RegEx for matching prior versions to 1.11.14
我将使用什么正则表达式来验证版本是否低于 1.11.14
像 1.9.15, 1.11.12
这样的版本应该会失败,像 1.11.15
和更高版本这样的版本应该会通过。
我正在尝试做这样的事情1\.(11$\.13$|14$|15$)
,但显然它行不通。
如果还有更有效的方法,我愿意接受。
正如您所说,除了使用正则表达式别无他法,那么您可以使用这个正则表达式,它将匹配任何小于 1.11.14
的版本
^(?:0\.\d+\.\d+|1\.(?:\d|10)\.\d+|1\.11\.(?:\d|1[0-3]))$
解释:
^
- 字符串开始
(?:
- 各种情况交替开始
0\.\d+\.\d+
- 如果第一个数字为零,则无论后面出现什么数字,它都会匹配。
|
- 交替
1\.(?:\d|10)\.\d+
- 如果第一个数字是 1
并且第二个版本数字小于 11
那么第三个数字可以是任何
|
- 交替
1\.11\.(?:\d|1[0-3])
- 如果第一个数字是 1
第二个数字是 11
那么第三个数字只能是 1 到 13
)$
- non-capture 组结束和字符串结束
我将使用什么正则表达式来验证版本是否低于 1.11.14
像 1.9.15, 1.11.12
这样的版本应该会失败,像 1.11.15
和更高版本这样的版本应该会通过。
我正在尝试做这样的事情1\.(11$\.13$|14$|15$)
,但显然它行不通。
如果还有更有效的方法,我愿意接受。
正如您所说,除了使用正则表达式别无他法,那么您可以使用这个正则表达式,它将匹配任何小于 1.11.14
^(?:0\.\d+\.\d+|1\.(?:\d|10)\.\d+|1\.11\.(?:\d|1[0-3]))$
解释:
^
- 字符串开始(?:
- 各种情况交替开始0\.\d+\.\d+
- 如果第一个数字为零,则无论后面出现什么数字,它都会匹配。|
- 交替1\.(?:\d|10)\.\d+
- 如果第一个数字是1
并且第二个版本数字小于11
那么第三个数字可以是任何|
- 交替1\.11\.(?:\d|1[0-3])
- 如果第一个数字是1
第二个数字是11
那么第三个数字只能是 1 到 13)$
- non-capture 组结束和字符串结束