我们有以下版本的 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