【问题标题】:Regex to match certain lines, except when they have certain words (limited regex vocab available)正则表达式匹配某些行,除非它们有某些单词(可用的正则表达式词汇有限)
【发布时间】:2011-10-12 17:45:17
【问题描述】:

我正在使用一个日志拖尾应用程序 (BareTailPro),它突出显示与正则表达式匹配的行。我目前将过滤器设置为 error(忽略大小写)返回,例如:

25/07/2011 00:09:43.384 [Error] Timeout elapsed
25/07/2011 01:44:04.541 [Error] Receiver TopicName message count changed
25/07/2011 06:07:23.648 [Error] Error processing files
25/07/2011 09:40:04.591 [Error] Receiver TopicName message count changed
25/07/2011 16:42:12.163 [Error] Error Getting Matches & Rejects

我不想看到带有Receiver TopicName.* 的行。

是否可以设置一个正则表达式来执行此操作?该应用的表达词汇似乎极为有限:reference

【问题讨论】:

    标签: regex string logfile-analysis


    【解决方案1】:

    鉴于 Dogbert 的回答说没有负面的前瞻性,我建议这样做:

    如果您知道错误后所有可能发生的事情是什么,例如Timeout、Error、Error Getting Matches 等...您可以将所有这些添加到您的正则表达式中。因此,您可以匹配 error (Timeout|Error|Error Getting Matches) 等等,而不是匹配错误。

    这不是一个完美的解决方案(您可能会错过一些),但它可以工作。

    【讨论】:

      【解决方案2】:

      这是不可能的,因为该页面上没有提到前瞻性声明支持。

      【讨论】:

        【解决方案3】:

        如果 BareTailPro 支持,你可以试试a negative lookahead。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-06-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多