代码之家  ›  专栏  ›  技术社区  ›  Ricsie

按开始和结束键移除文本块记事本+regex

  •  -1
  • Ricsie  · 技术社区  · 5 年前

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

            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块。

    不幸的是,我无法编写一个regex,它将从输入数据中删除所有不必要的数据块。

    1 回复  |  直到 5 年前
        1
  •  1
  •   Gurmanjot Singh    5 年前

    试试这个正则表达式:

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

    用空字符串替换每个匹配项。

    Click for Demo

    说明:

    • \.data 火柴 .data
    • (?:(?!\.enddata)[\s\S])* -匹配0+个不以开头的字符 .enddata
    • \.enddata 火柴 终端数据

    enter image description here