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

问题描述 投票:0回答:4

我有一个包含数百个

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

我尝试使用

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。我的想法是,可以使用正则表达式突出显示所有所需的文本,然后可以将其复制到其他地方。

regex text notepad++ file-manipulation
4个回答
0
投票

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

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

示例:

Notepad++ search example with OP example text

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

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

结果:

Wanted text
Text that I want
Third desired text

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


0
投票

也许这个表达,

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

更换

$1\n
也可能有效。

如果您想探索/简化/修改该表达式,请在此演示的右上角面板上进行解释。


0
投票

这个对我来说效果很好......

查找内容:

>.*?\[(.*?)\]\n.*

替换为:
$1


0
投票

你能告诉我如何使用notepad++正则表达式复制>< in lines of code like 600 so that the number (in this example 600) would be copied to data-price-origin='"" and the line would look like this after these changes 600

之间的任意数字吗
© www.soinside.com 2019 - 2024. All rights reserved.