Notepad++ 突出显示两个方括号之间的任何内容

Notepad++ highlighting anything between two square brackets

我有一个包含数百个 [] 之间的一系列字符串的文档,我想突出显示这些字符串并将信息复制到电子表格中。

我尝试使用 Find 工具,但无法找出正则表达式

这样做的最终目标是能够将信息一次性复制到新文件中,或者突出显示它并复制到 excel 电子表格中。

文本文件类似于:

>X_343435353.3 words like foo bar [Wanted text]
TGATGATGCCATGCTAGCCATCGACTAGCGACTAGCATCGACTAGCATCAGCTACGACTAGCATCGACTACGA
>XP_543857836.3 other information [Text that I want]
TAGCATCGACTAGCTACTACCTGAGCGAGAAATTTTGGCTATCGACATCGACTATCGAGCACAGCTAGGAATT
>NP_3843875938.2 interesting words [Third desired text]
ATCGCATAGCGCGCTTAGAAGGCCTTAGAGGCATCATCTATCGAGCGACGATATCGCGAGGCAGCGCTATACC

我想要的输出如下:

Wanted text
Text that I want
Third desired text

我不确定是否可以在 Notepad++ 中执行此操作,或者您是否需要使用 cmd/shell 工具来执行此操作。我正在使用 Windows 10。当时的想法是可以使用正则表达式突出显示所有需要的文本,然后可以将其复制到其他地方。

只匹配文本而不匹配括号:

(?<=\[).*?(?=\])

示例:

要删除文档中的所有内容并在每行中只保留需要的文本:

  1. 将光标设置在文档的开头。
  2. 宏,开始录制。
  3. Ctrl-F(查找)、.*?\[、Select 正则表达式和 . 匹配换行符。
  4. 单击查找下一个并关闭对话框。
  5. 删除突出显示的文本。
  6. Ctrl-F(查找)、\]、Select 正则表达式和 . 匹配换行符。
  7. 单击查找下一个并关闭对话框。
  8. Enter 删除突出显示的文本。
  9. 宏,停止录制。
  10. 宏,运行一个宏多次,select直到文件结束。
  11. 单击运行

结果:

Wanted text
Text that I want
Third desired text

宏完成后,您需要删除最终匹配项(如果有)后的最后一位。

也许这个表达,

.*\[(.*?)\][\s\S]+?([\r\n]|$)

替换 \n 也可能有效。

如果您希望 explore/simplify/modify 表达式,请在 this demo 的右上面板中对其进行解释。

这个对我来说很好用....

查找内容:>.*?\[(.*?)\]\n.*
替换为: