我将使用什么正则表达式来验证版本是否小于1.11.14
1.9.15, 1.11.12
之类的版本应该会失败,而1.11.15
及更高版本之类的版本应该会通过。
我正在尝试执行类似1\.(11$\.13$|14$|15$)
的操作,但是显然它无法正常工作。
如果还有一种更有效的方法,我也会接受。
答案 0 :(得分:2)
正如您所说,除了使用正则表达式外,别无其他方法,那么您可以使用此正则表达式,它将匹配小于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。)$
-非捕获组的结尾和字符串的结尾