从notpade ++中删除文本并保持文本开头

时间:2015-11-11 05:12:59

标签: regex notepad++

我有一个巨大的文字,我想要删除所有文字,只保留以" http"开头的行。

我怎么能这样做?

示例数据(我只想保留URL):

  request": {
      "method": "GET",
      "http://10.0.183.17:8080/arcgis/rest1/services/NJMPROD/Topo_En/MapServer?f=json&pretty=true&callback=OpenLayers.Protocol.Script.registry.c1",
      "httpVersion": "HTTP/1.1",
      "headers": [
        {
          "name": "Pragma",
          "value": "no-cache"
        },
      ],
  },
  {
    "startedDateTime": "2015-11-11T04:45:56.321Z",
    "request": {
      "http://10.0.183.17:8080/arcgis/rest1/services/NJMPROD/Satellite_En/MapServer?f=json&pretty=true&callback=OpenLayers.Protocol.Script.registry.c2",
      "httpVersion": "HTTP/1.1",

2 个答案:

答案 0 :(得分:2)

使用this post中的一些信息,您可以通过以下方式标记所有行:

Search menu -> Mark

在"找到什么"字段:

\w*"http://.*"

确保"书签行"和"正则表达"选中选项,然后单击"全部标记"。

然后您可以通过以下方式删除所有未标记的行:

Search menu -> Bookmark -> Remove Unmarked Lines

如果你真的只想要没有引号和标点符号的URL,你可以使用replace(ctrl + h)和以下正则表达式:

Find what: "|,
Replace with: (leave blank)

然后点击"全部替换"。要清理空格,请使用:

Edit menu -> Blank Operations -> Trim Leading and Trailing Space

如果您只使用Notepad ++,有点麻烦。假设您正在运行Windows,您可以安装Cygwin + GNU utils以使用sed和grep等命令行工具。

答案 1 :(得分:0)

此解决方案使用Notepad ++替换功能:

1)打开替换对话框((Strg + H))并输入此表达式(进入“查找内容”字段) :

^(?!\s+"http://).*$
  
    

简短正则表达式步骤
     ^ 线的开头
    (?!...)负向前瞻 - >这个序列不应该出现      \ s + 一个或多个空格
    “http:// 只是匹配的字符序列(在您的情况下不与负向前瞻相匹配)
    。* 零个或多个字符
     $ Lineend

         

这是表达式https://regex101.com/r/qS5iE1/1的在线演示     (这也是测试表达式的好地方)

  

2)清除“替换为”字段(或留空)并设置“正则表达式”搜索模式并点击“全部替换” Screenshot Searchbox1
(对不起,截图是德文版)

3)你完成了! :)

4)可选:删除您可以执行此操作的空白

screenshot second search
(对不起,截图是德文版)

此操作的

最终结果如下所示(在win7上使用notepad ++ Version 6.7 +)

screenshot result
(对不起,截图是德文版)