使用正则表达式删除文本中括号内的内容以外的所有内容

使用正则表达式删除文本中括号内的内容以外的所有内容

我想使用 notepad++ 删除文本文件中除 [ ] 之间的内容之外的所有内容。

例子:

[D-1.1.1-A] - bla bla text here[D-1.1.1-B] - some more bla bla text here[D-1.1.1-C] - even more bla bla

会成为:

[D-1.1.1-A][D-1.1.1-B][D-1.1.1-C]

答案1

如果输入更复杂,你要求的内容可能比正则表达式更复杂。但是,如果输入始终如写的那样,那么

Ctrl-H
Find what: [^\]]+(\[|$)
Replace with: \1

应该这样做

答案2

您可以查找[^\[]*(\[.*?\])[^\[]*
(确保“搜索模式”是“正则表达式”,也许检查“环绕”)

并将其替换为$1

一个例子

答案3

  • Ctrl+H
  • 找什么:\[.*?\](*SKIP)(*FAIL)|.+?
  • 用。。。来代替:LEAVE EMPTY
  • 查看 环绕
  • 查看 正则表达式
  • 取消选中 . matches newline
  • Replace all

解释:

  \[.*?\]       # 1 or more any charact, not greedy, between opening and closing square brackets
  (*SKIP)       # Special verb, forget it
  (*FAIL)       # Special verb, assume there is no match
|             # OR
  .+?           # 1 or more any character, not greedy

截图(之前):

在此处输入图片描述

截图(之后):

在此处输入图片描述

相关内容