我有一长串来自石墨实例的命名空间,我正在尝试运行一些验证并过滤掉未使用正确格式输入的命名空间。
我通常可以正常使用正则表达式,但是这个正在伤害我并且希望有人可以提供帮助。
有一些基本的验证需要完成,而且我已经走到了这一步:
^(stats\.gauges\..*\.(?:dur|hop|scz|led|bgi|shi|crk|sas)\.(?:p|s|q|u|d|x)\.)
目标是过滤并匹配标准化stats.gaugues.*.(exact OR match).(exact OR match).
这适用于以下内容:
stats.gauges.gitswarm.dur.p.durgitswarm1.service.repos.eeps-merge_demo.users
但不幸的是有人输入了一些像:
stats.gauges.gitswarm.dur.p.durgitswarm1.dur.p.service.repos.eeps-merge_demo.users
所以这些匹配一直到第二个dur.p.
跳过可能错误的完全匹配,例如stats.gauges.gitswarm.durham.p.durgitswarm1.dur.p.service.repos.eeps-merge_demo.users
;我不想要的。
我觉得这很简单,但到目前为止似乎无法掌握它。
非常感谢任何帮助。
谢谢!
答案 0 :(得分:2)
这应该有效。基本上你需要让你的.*
非贪婪
^(stats\.gauges\..*?\.(?:dur|hop|scz|led|bgi|shi|crk|sas)\.(?:p|s|q|u|d|x)\.)