Notepad ++ ::删除所有不包含的行和文本

时间:2017-03-27 22:30:49

标签: text ip editor notepad++

标题非常自我解释......

我的正则表达式仍然不完美,但在改进之前我需要解决2个问题......

我可以通过ip:port获取所有行,但我不知道如何:

  1. 删除该行的其余文本。
  2. 在同一注册请求中没有任何内容替换空行\ r \ n \。
  3. 该文本文件的示例:

    junk text junk text junk text junk text junk text junk text junk text 
    junk text 127.0.0.1:28 junk text junk text junk text junk text junk text 
    junk text junk text junk text junk 127.0.0.1:28text junk text 
    junk text junk text junk text 127.0.0.1:28 junk text 
    junk text junk text junk text 
    junk text 127.0.0.1:28 junk text 
    junk text 
    junk text 127.0.0.1:28 junk text 
    junk text 127.0.0.1:28 junk text junk text 
    junk text junk text junk text 127.0.0.1:28 junk text 
    junk text junk text junk text junk text junk text 
    junk text junk text junk text 127.0.0.1:28 junk text junk text junk text 
    junk text junk text 127.0.0.1:28 junk text junk text junk text junk text junk text 
    

    我期待着回来:

    127.0.0.1:28
    127.0.0.1:28
    127.0.0.1:28
    127.0.0.1:28
    127.0.0.1:28
    127.0.0.1:28
    127.0.0.1:28
    127.0.0.1:28
    127.0.0.1:28
    

    显然该示例使用相同的ip:port line但我不希望它是固定值。

    是否可以使用单个正则表达式请求执行此操作?

    ......作为一个起点我试过:

    ^(?!.*[09].*).+$
    

1 个答案:

答案 0 :(得分:1)

您可以使用(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}:\d+)匹配并捕获IP,然后您可以使用(?:(?!\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}:\d+).)* tempered greedy token匹配任何未启动类似子字符串的IP文本。

查找内容(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}:\d+)|(?:(?!\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}:\d+).)*

如果您在模式开始时添加(?s),则无需检查 .匹配换行符选项。

要仅使用找到的IP替换,可以使用条件替换模式添加换行符:

(?{1}$1\n:)

如果匹配+换行符,它将替换匹配的组1值(IP),否则匹配将替换为空字符串。

enter image description here