我有一个正则表达式,它在我的日志中找到错误:
/(exception|error)/i
Run Code Online (Sandbox Code Playgroud)
这是有效的,除了我不希望在发生以下情况时收到警报,我希望发生这种情况:
DD/MM/YYYY 10:20pm: Read exception encountered
Run Code Online (Sandbox Code Playgroud)
如何明确拒绝"遇到的异常读取"字符串?我正在尝试使用?!运营商,但失败了:
/(?!Read exception encountered)(exception|error)/i
Run Code Online (Sandbox Code Playgroud)
上面仍然匹配我想要排除的字符串.
更新: 在尝试下面的负面lookbehind和lookahead解决方案后,我发现SiteScope仅支持基本的POSIX正则表达式功能,而不支持扩展功能.只使用基本的POSIX正则表达式功能是否可以实现解决方案?
您想使用“Negative Lookbehind”(如果您的正则表达式引擎支持它)。实际上,您可以说“我想匹配 X 模式,只要其他模式不在它前面。”
在您的示例中,它看起来像这样:
/(?<!read )(exception|error)/i
Run Code Online (Sandbox Code Playgroud)
请在此处查看有关“环视”功能的更多信息。