通过开始和结束键盘记事本++正则表达式删除文本块

时间:2019-02-27 11:46:38

标签: regex notepad++

我有一个数据输入文件,看起来像:

        Menu: textA
            Resource Id: 59517
            Picture File Name:
            Status Text:
            Menu Item Name:
.data CLASSPROPSSIZE
0000: 2400
.enddata
.data CLASSPROPS
0000: 4F004C0045005F00 4D0045004E005500 5F00470052004F00 550050000000FFFE
0020: 02000000
.enddata
                Resource Id: 45367
                Picture File Name:
                Enabled when:
                Status Text:
                Menu Item Name:
                Menu Item: TextB
.data CLASSPROPSSIZE
0000: 2400
.enddata
.data CLASSPROPS
0000: 4F004C0045005F00 4D0045004E005500 5F00470052004F00 550050000000FFFE
0020: 02000000
.enddata

我还需要删除带有.data和.enddata行的整个.data和.enddata块。

不幸的是,我无法编写一个正则表达式来从输入数据中删除所有不必要的数据块。

1 个答案:

答案 0 :(得分:1)

尝试此正则表达式:

\.data(?:(?!\.enddata)[\s\S])*\.enddata

将每个匹配项替换为空白字符串。

Click for Demo

说明:

  • \.data-匹配.data
  • (?:(?!\.enddata)[\s\S])*-匹配0+次出现的不以.enddata开头的任何字符
  • \.enddata-匹配.enddata

enter image description here