regex Notepad++ -重复删除跨越多行的两个字符串之间的所有文本

r1zk6ea1  于 2023-03-31  发布在  其他
关注(0)|答案(1)|浏览(210)

我有这样的文字:

<Tag sometext>
    <Tag2>
       random text
       <AnotherTag>
           more text
       </AnotherTag>
    </Tag2>
</Tag>
<Tag texttext>
    <Tag2>
       different text
       <Another2Tag>
           other text
       </Another2Tag>
    </Tag2>
</Tag>

重复这些块。我想删除所有的Tag 2块,这样它将结束如下:

<Tag sometext>
</Tag>
<Tag texttext>
</Tag>

更好的是(但不是必须的):

<Tag sometext />
<Tag texttext />

事实上tag 2跨越了多行,并且重复了很多次,这让我很困惑,我无法理解这个表达式。谢谢!

nhhxz33t

nhhxz33t1#

你可以在正则表达式模式下尝试下面的查找和替换:

Find:    ^\s*<Tag2>.*?<\/Tag2>\R
Replace: (empty)

在启用多行和点全模式的情况下运行上面的正则表达式。
这是一个可以正常工作的demo

相关问题