正则表达式为 helm 匹配 n 次

标签 regex kubernetes-helm sprig-template-functions

要匹配这些示例:

1-10-1
1-7-3
10-8-5
1-7-14
11-10-12

这个正则表达式有效:

^[\\d]{1,2}-[\\d]{1,2}-[\\d]{1,2}$

如何以仅匹配“[\d]{1,2}-?”三 (n) 次之类的方式编写此内容?

最佳答案

您可以使用:

^\d\d?(?:-\d\d?){2}$

查看在线 demo

  • ^ - 起始线 anchor 。
  • \d\d? - 一个数字后跟一个可选数字(与 \d{1,2} 相同)。
  • (?:-\d\d?){2} - 以连字符开头的非捕获组,后跟与上述相同的结构(一位或两位数字)。捕获组恰好重复两次。
  • $ - 结束字符串 anchor 。

这里的想法是避免在您所做的尝试中使用可选的连字符,因为本质上您会开始允许完全不同的事物,例如“123”和“123456”。更合适的做法是匹配分隔字符串的第一个元素,然后使用非捕获组来匹配分隔符和其余所需元素恰好 n-1 次。

关于正则表达式为 helm 匹配 n 次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68031602/

相关文章:

尝试与正则表达式匹配时出现 java.util.regex.PatternSyntaxException

javascript - javascript 正则表达式上的 php preg_match

sprig-template-functions - go-template 按分隔符拆分字符串

regex - Python重新转义正则表达式模式中的巧合括号

regex - 错误 : pattern must be a RegExp

kubernetes - 从 helm 连接到 kubernetes 集群

google-kubernetes-engine - Helm stable/nginx-ingress 具有自动缩放功能,HPA 无法读取 CPU 或内存指标

docker - Helm 图表部署和私有(private) docker 存储库

go - 尝试评估丢失的嵌套键时,Helm 图表失败并显示 "nil pointer evaluating interface {}"