用于将先前版本与 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 组结束和字符串结束

Regex Demo