我想分析错误日志。因此,我决定使用Notepad ++在错误日志中搜索所有错误标题,以便我可以获得搜索结果中的所有错误的第一行(其中包含有关错误的简短描述),以确定是否需要深入了解它。但错误日志显然充满了“无用”的错误。一种事件的错误记录,如90%,所以它隐藏了真正的错误,就像在大海捞针一样。
所以从这个例子中编写错误日志:
ERROR on Server1: Network connection reset.
DETAIL: The client is gone.
ERROR on Server2: Network connection reset.
DETAIL: The client is gone.
ERROR on Server1: Network connection reset.
DETAIL: The client is gone.
ERROR on Server1: Null Pointer Error.
DETAIL: Object 'Cart' does not exists.
STACKTRACE:
at UpdateCart function
at AddProducttoCart function
ERROR on Server2: Network connection reset.
DETAIL: The client is gone.
ERROR on Server2: IO Error
DETAIL: The resource on URL (www.example.com/data.xls) does not exists.
ERROR on Server2: Network connection reset.
DETAIL: The client is gone.
我想在Notepad ++搜索上创建一个正则表达式,搜索包含字符串" ERROR on"但不包含"网络连接重置",因此搜索结果仅包含:
ERROR on Server1: Null Pointer Error.
ERROR on Server2: IO Error
我该怎么做?我在某处读过正则表达式的反向匹配有点困难和不寻常,但这是可能的。感谢。
是的,我已经尝试过其他一些方法来做这件事,比如找到" ERROR on" +(.*)
+"网络连接重置",然后将其替换为空字符串,以便下次在"上搜索" ERROR时,它们将不会出现。但是在搜索和替换之后,错误日志会被奇怪的符号扰乱,之后Notepad ++就会崩溃。我不知道。我从未使用正则表达式在Notepad ++上搜索和替换运气。
答案 0 :(得分:2)
我会使用否定前瞻。
^(?!.*?\bNetwork connection reset\b).*\bERROR on\b.*
答案 1 :(得分:1)
^ERROR on (?:(?!Network connection reset).)*$
您可以在regex.See演示中使用lookahead
。