【问题标题】:How can I exclude search pattern within double quotes in Notepad++如何在 Notepad++ 中排除双引号内的搜索模式
【发布时间】:2021-05-27 10:19:50
【问题描述】:

我有以下行,我想用空格(制表符)替换空格,但想保持双引号内的空格原样。我在 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    -   -

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

"([^"]*)"

您能帮我实现吗?

【问题讨论】:

  • 什么是正则表达式引擎?
  • 我正在使用记事本++

标签: regex notepad++


【解决方案1】:

你可以使用

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

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

详情

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

查看演示截图:

【讨论】:

  • 您好,感谢您的回答。不幸的是,这个正则表达式对我不起作用。我正在使用 Notepad++ 版本 7。
  • @AndrewsDean 对此还有另一种解决方案。
  • 谢谢,您提供的新解决方案运行良好。您能告诉我为什么 Notepad++ 不接受您之前的解决方案吗?只是很感兴趣。
  • @AndrewsDean 如果你有一些旧版本,它不支持(*SKIP) PCRE 动词。
猜你喜欢
  • 1970-01-01
  • 2015-10-04
  • 1970-01-01
  • 1970-01-01
  • 2022-10-17
  • 2015-06-07
  • 2011-04-19
相关资源
最近更新 更多