Regex 使用re2正则表达式和匹配大小写否定字符串模式
我使用re2正则表达式来匹配和否定 以下是每个可能的输入Regex 使用re2正则表达式和匹配大小写否定字符串模式,regex,prometheus,grafana,re2,Regex,Prometheus,Grafana,Re2,我使用re2正则表达式来匹配和否定 以下是每个可能的输入 abcd st-ed-qrew ktm ewe abcd st-ed-qrew abcd st wer qrew wabe ktm ewe abcd st qrew qrrt 条件是: 如果字符串以abcd-开头,那么它应该取反(不应该包含)-ed 如果字符串以ktm-开头,并且还包含-abcd-,那么它应该否定(不应该包含)-ed 正则表达式应该省略第一和第二个输入,因为它包含-ed。应通过第3和第4次输入 引用中的正则表达式链接传
- 如果字符串以
开头,那么它应该取反(不应该包含)abcd-
-ed
- 如果字符串以
开头,并且还包含ktm-
,那么它应该否定(不应该包含)-abcd-
-ed
-ed
。应通过第3和第4次输入
引用中的正则表达式链接传递用于两个条件的匹配情况,但不用于否定(不包含)事物。希望需要一些调整来否定
注:这是针对grafana中普罗米修斯数据的正则表达式。这就是为什么我也要给它们加标签。您可以使用以下模式:
^(?:ktm(?-e |-(?:[^e\W]| e[^d\W])\W*)*-?abcd(?:[^e\W]| e[^d\W])\W*)*$
如果您想将其与您的
\bkey=“((?:ktm(?-e |-(?:[^e\W]| e[^d\W])\W*)*-)?abcd(?:[^e\W]| e[^d\W])\W*)”
重要部分的细分(即,
(?:-e |-(?:[^e\W]| e[^d\W])\W*)
在另一个问题中进行了解释。该部分同时用于abcd
和ktm
。让我知道一些需要澄清的事情。为什么不工作请注意,我昨天无法帮您解决这个问题,因为您提到的预期输出没有意义,也不符合您提到的匹配条件。我根据您提供的条件发布了此问题的答案。希望您在此处使用的条件能更准确地表示您所需的内容。只是一个更新。这是有效的。但是,由于普罗米修斯查询中的实际实现是,我们需要添加转义字符(:ktm(?-e |-(?:[^e\\W]| e[^d\\W])\\W*-)?abcd(?-e |-(?:[^e]\W]|e[^d\\W])\\W*$
。你能不能也把我的问题投上一票。因为,有人投了反对票,当我投上一票时,它显示为0。无论如何,非常感谢!