我正在使用re2正则表达式来匹配和求反,如this link
以下分别是可能的输入
条件是:
abcd-
开头,则它应取反(不应包含)-ed
ktm-
开头并且还包含-abcd-
,则它应该取反(不应包含)-ed
正则表达式应省略第一和第二输入,因为它包含-ed
。应该通过第三和第四输入
引用链接中的正则表达式适用于两种情况的匹配情况,但不适用于否定(不包含)事物。希望需要一些调整来否定。
注意:这是关于grafana中普罗米修斯数据的正则表达式。这就是为什么我也要标记它们。
答案 0 :(得分:0)
您可以使用以下模式:
^(?:ktm(?:-e|-(?:[^e\W]|e[^d\W])\w*)*-)?abcd(?:-e|-(?:[^e\W]|e[^d\W])\w*)*$
Demo 。
如果您想将其与other question中的正则表达式结合使用,它将是:
\bkey="((?:ktm(?:-e|-(?:[^e\W]|e[^d\W])\w*)*-)?abcd(?:-e|-(?:[^e\W]|e[^d\W])\w*)*)"
Demo 。
重要部分(即(?:-e|-(?:[^e\W]|e[^d\W])\w*)
的细分在另一个问题中的my answer中进行了说明。该部分同时用于abcd
和ktm
。我知道有些事情需要澄清。