Skip to main content
 首页 » 编程设计

python之在 python 中需要一些正则表达式帮助

2024年10月17日39落叶无声

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

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

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

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

我觉得这是一件很简单的事情,但到目前为止似乎还没有掌握。

非常感谢任何帮助。

谢谢!

请您参考如下方法:

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