我在使用regexp过滤时遇到了一些问题。
我有一个包含多个条目的日志,如:
2015-09-04 03:35:05,074 ERROR [repo.sync.SyncTrackerComponent] Unable to pull
2015-09-04 03:35:05,074 WARN [repo.sync.SyncTrackerComponent] missing event: CREATE
2015-09-04 11:21:58,638 ERROR [repo.jscript.ScriptLogger] Cost center review Id 473805
2015-09-04 14:02:16,917 ERROR [repo.jscript.ScriptLogger] Tarea actual - GBS Review
2015-09-04.*ERROR
我在记事本++中使用常规表达来过滤错误(即今天的错误)2015-09-04 03:35:05,074 ERROR [repo.sync.SyncTrackerComponent] Unable to pull
2015-09-04 11:21:58,638 ERROR [repo.jscript.ScriptLogger] Cost center review Id 473805
2015-09-04 14:02:16,917 ERROR [repo.jscript.ScriptLogger] Tarea actual - GBS Review
会输出错误
2015-09-04.*ERROR.*(?!.*Unable to pull)
我想过滤掉例如不包含某些描述的错误。我试图使用2015-09-04 11:21:58,638 ERROR [repo.jscript.ScriptLogger] Cost center review Id 473805
2015-09-04 14:02:16,917 ERROR [repo.jscript.ScriptLogger] Tarea actual - GBS Review
愿意拥有此输出:
\
但它不起作用。否定查询有什么问题?
答案 0 :(得分:0)
问题(@stribizhev在评论中暗示)是您在.*
之后匹配ERROR
,这意味着它与您的否定前瞻能够(不)匹配任何内容之前的所有内容相匹配。
2015-09-04.*ERROR.*(?!.*Unable to pull)
/|\
|
problem
如果你在比赛的其余部分之前放置负面预测,它应该有效。
2015-09-04.*ERROR(?!.*Unable to pull).*