正则表达式过滤值并显示小于所需的版本号

正则表达式过滤值并显示小于所需的版本号

我们有以下版本的 docker 标签,请帮忙分享正则表达式模式以过滤早于以下值的记录。例如,应该显示旧标签 -23.0.0.17以及更旧、23.0.0.17_acme.17.xxxxxxx更旧等等?

23.0.0.18
23.0.0.18_acme.18.xxxxxxx
23.1.0.11
23.1.0.11_acme.11.xxxxxxx

答案1

要获取版本23.0.0.17或更早版本,你可以对 JS 使用以下命令:

^((23\.0\.0\.(1[0-7]|\d))|((2[0-2]|1\d|\d)\.\d+\.\d+\.\d+))\S*

正如我在问题下方的评论中所说,这实际上不是正则表达式的工作,尽管您可以尝试并构建一些。您基本上必须考虑数字组合的所有选项 - 第一种选择匹配所有可能的23版本,第二种选择匹配下面的任何版本。

一个更好的想法是使用专门为比较版本而构建的库或自己编写一个函数,例如https://stackoverflow.com/a/16187766/7264739

相关内容