如果使用标准POSIX正则表达式前面有另一个字符串,你如何拒绝一个字符串?

前端之家收集整理的这篇文章主要介绍了如果使用标准POSIX正则表达式前面有另一个字符串,你如何拒绝一个字符串?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个正则表达式,它在我的日志中找到错误
/(exception|error)/i

这是有效的,除了我不希望在发生以下情况时收到警报,我预计会发生这种情况:

DD/MM/YYYY 10:20pm: Read exception encountered

我如何具体拒绝’遇到的异常遇到’字符串?我正在尝试使用?!操作符,但失败了:

/(?!Read exception encountered)(exception|error)/i

上面仍然匹配我想要排除的字符串.

更新:
在尝试了下面的负面观察和前瞻解决方案后,我发现SiteScope仅支持基本的POSIX正则表达式功能,而不支持扩展功能.是否可以仅使用基本的POSIX正则表达式功能

你想使用“Negative Lookbehind”(如果你的正则表达式引擎支持它.)你有效地说“我想匹配X patern,只要这个其他模式不在它之前”.

在您的示例中,它看起来像这样:

/(?<!read )(exception|error)/i

查看有关“外观”功能的更多信息here.

猜你在找的正则表达式相关文章