【问题标题】:How to find multiple words on the same line in Notepad++Notepad++ 如何在同一行查找多个单词
【发布时间】:2010-03-14 20:11:18
【问题描述】:

我有一个来自 Windows XP 防火墙的 4MB 日志文件,我正在尝试查找同时具有 DROP 和 IP 以及端口号的行。我的正则表达式很弱,我假设这就是我挣扎的原因。

单词“DROP”、“10.1.1.1”(例如)和“8801”需要在同一行中找到,并且可以跨行并由一个或多个其他单词分隔。

非常感谢任何帮助(或其他方法的建议)。

【问题讨论】:

  • 如果你想找到特定的 IP 和端口号,那么应该这样做:DROP.*10\.1\.1\.1.*8801
  • @Mike:“DROP”、IP 和端口是按照您编写它们的顺序还是您需要能够找到它们的任何排列?
  • 除了安迪的解决方案 - 请阅读:notepad-plus.sourceforge.net/uk/regExpList.php。它解释了notepad++的正则表达式语法

标签: regex file parsing notepad++ logging


【解决方案1】:

最简单的解决方案应该是:

DROP.*10.1.1.1.*8801

【讨论】:

    【解决方案2】:

    这将在记事本++中完成

    DROP.*10\.1\.1\.1.*8001
    

    或针对不同 IP 的简单正则表达式(因为您不需要验证 IP 地址本身)

    DROP.*\d\.\d\.\d\.\d.*8801
    

    【讨论】:

    • 你认为他为什么需要尾随通配符?恕我直言,您在开始和结束时不需要 .*。
    • @tanascius NP++ 反复无常,我误解了我的测试,修改了答案
    【解决方案3】:

    notepad++ RegEx 似乎无法识别大括号、非捕获组或 \b。我能找到的最接近的是:
    DROP\s.*[0-9]+[.][0-9]+[.][0-9]+[.][0-9]+.*\s[0-9]+
    DROP\s\d+\.\d+\.\d+\.+\d+.*\s\d+

    【讨论】:

    • 它会的,你只需要逃脱它们。
    猜你喜欢
    • 1970-01-01
    • 2013-11-09
    • 2020-09-17
    • 1970-01-01
    • 2019-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-26
    相关资源
    最近更新 更多