Regex 除非存在另一个字符串,否则正则表达式将排除该字符串
我目前正在使用fluentd regex表达式来匹配所有日志条目,除非消息包含字符串“dbug”。但是,如果日志包含条目中的“dbug”和“firing”,那么我需要正则表达式来匹配该字符串 这两个字符串可以出现在日志条目中的任何位置,但是“dbug”总是在“firing”之前 是否可以构建一个可以实现这一点的正则表达式Regex 除非存在另一个字符串,否则正则表达式将排除该字符串,regex,fluentd,Regex,Fluentd,我目前正在使用fluentd regex表达式来匹配所有日志条目,除非消息包含字符串“dbug”。但是,如果日志包含条目中的“dbug”和“firing”,那么我需要正则表达式来匹配该字符串 这两个字符串可以出现在日志条目中的任何位置,但是“dbug”总是在“firing”之前 是否可以构建一个可以实现这一点的正则表达式 我非常感谢你在这方面的帮助 我们可以在这里尝试使用lookaheads,例如 ^(?:(?!.*\bdbug\b)|(?=.*\bdbug\b.*\bfiring\b)).*$
我非常感谢你在这方面的帮助 我们可以在这里尝试使用lookaheads,例如
^(?:(?!.*\bdbug\b)|(?=.*\bdbug\b.*\bfiring\b)).*$
第一个lookahead(?!.*\bdbug\b)
匹配任何不包含dbug
的行,第二个lookahead(?=.*\bdbug\b.*\bfiring\b)
匹配任何包含dbug
和firing
的行,顺序相同