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

时间:2019-07-16 04:08:06

标签: regex text notepad++ file-manipulation

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

我尝试使用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工具来执行此操作。我正在使用Windows10。当时的想法是,可以使用正则表达式突出显示所有所需文本,然后将其复制到其他位置。

3 个答案:

答案 0 :(得分:0)

仅匹配文本而不匹配括号

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

示例:

Notepad++ search example with OP example text

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

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

结果:

Wanted text
Text that I want
Third desired text

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

答案 1 :(得分:0)

也许是这个表情

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

$1\n替换也可以。

如果要浏览/简化/修改该表达式,请在this demo的右上角进行解释。

答案 2 :(得分:0)

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

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