在python中需要一点正则表达式的帮助

时间:2016-11-03 02:06:37

标签: python regex

我有一长串来自石墨实例的命名空间,我正在尝试运行一些验证并过滤掉未使用正确格式输入的命名空间。

我通常可以正常使用正则表达式,但是这个正在伤害我并且希望有人可以提供帮助。

有一些基本的验证需要完成,而且我已经走到了这一步:

^(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;我不想要的。

我觉得这很简单,但到目前为止似乎无法掌握它。

非常感谢任何帮助。

谢谢!

1 个答案:

答案 0 :(得分:2)

这应该有效。基本上你需要让你的.*非贪婪 ^(stats\.gauges\..*?\.(?:dur|hop|scz|led|bgi|shi|crk|sas)\.(?:p|s|q|u|d|x)\.)