RegEx用于将早期版本与1.11.14匹配

时间:2019-05-17 10:08:58

标签: regex numbers regex-lookarounds regex-group

我将使用什么正则表达式来验证版本是否小于1.11.14

1.9.15, 1.11.12之类的版本应该会失败,而1.11.15及更高版本之类的版本应该会通过。

我正在尝试执行类似1\.(11$\.13$|14$|15$)的操作,但是显然它无法正常工作。

如果还有一种更有效的方法,我也会接受。

1 个答案:

答案 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。
  • )$-非捕获组的结尾和字符串的结尾

Regex Demo