首页 > 解决方案 > 如何在 Notepad++ 中排除双引号内的搜索模式

问题描述

我有以下行,我想用空格(制表符)替换空格,但想保持双引号内的空格原样。我在记事本++上。

[11/May/2020:10:10:20 -0400] "GET / HTTP/1.1" 302 523 52197 url.com - - TLSv1.2 19922 "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36" https://somelinkhere - -

期望的输出:

[11/May/2020:10:10:20   -0400]  "GET / HTTP/1.1"    302 523 52197   url.com -   -   TLSv1.2 19922   "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36"   https://somelinkhere    -   -

通过以下正则表达式,我能够选择双引号下的字符串,但这对我没有用。

"([^"]*)"

您能帮我实现这一目标吗?

标签: regexnotepad++

解决方案


您可以使用

("[^"]*")|[ ]

替换为(?1$1:\t)

详情

  • ("[^"]*")- 捕获组 1: a ",然后是零个或多个字符",然后是 a"
  • |- 或者
  • [ ]- 匹配一个空格(您可以在此处删除[],它们用于使空格模式在答案中可见)。

查看演示截图:

在此处输入图像描述


推荐阅读