Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 记事本++正则表达式:删除关键字之间的多行_Regex_Notepad++ - Fatal编程技术网

Regex 记事本++正则表达式:删除关键字之间的多行

Regex 记事本++正则表达式:删除关键字之间的多行,regex,notepad++,Regex,Notepad++,现状: ODR+1'& DPT+::LAS'& ARR+::RSW'& DAT+:021214'& TVL+20141202:0835:20141202:1830:0+LAS+RSW+WN+596+ET'& APD+73W+:1+:'& APD+::415'& CAR+O:WN'& DAT+AA:021214:1400::::MKE*AD:021214:1430:::73W'& ODR+2'& DPT+::RSW'&

现状:

ODR+1'&
DPT+::LAS'&
ARR+::RSW'&
DAT+:021214'&
TVL+20141202:0835:20141202:1830:0+LAS+RSW+WN+596+ET'&
APD+73W+:1+:'&
APD+::415'&
CAR+O:WN'&
DAT+AA:021214:1400::::MKE*AD:021214:1430:::73W'&
ODR+2'&
DPT+::RSW'&
ARR+::LAS'&
DAT+:111214'&
TVL+20141211:1030:20141211:1500:0+RSW+LAS+WN+274+ET'&
APD+73W+:+:1'&
APD+::450'&
CAR+O:WN'&
DAT+AA:111214:1225::::MDW*AD:111214:1300:::73W'&
UNT+29+1'
我想删除从第二个DAT到UNT之间的所有内容,即我想将此作为最终版本:

ODR+1'&
DPT+::LAS'&
ARR+::RSW'&
DAT+:021214'&
TVL+20141202:0835:20141202:1830:0+LAS+RSW+WN+596+ET'&
APD+73W+:1+:'&
APD+::415'&
CAR+O:WN'&
DAT+AA:021214:1400::::MKE*AD:021214:1430:::73W'&
ODR+2'&
DPT+::RSW'&
ARR+::LAS'&
DAT+:111214'&
UNT+29+1'

由于存在多个无法区分的TVL段,我想保留第一个段,只删除第二个段。。。。我遇到了更多的困难

您需要使用DOTALL模式来使dot匹配均匀的线路制动器

(?s)^(.*?DAT.*?DAT[^\n]*\n).*?\n(?=UNT)
然后将匹配项替换为$1

看起来你想在第三次DAT后删除这些行。如果是,那么您可以尝试以下方法

(?s)^(.*?DAT.*?DAT.*?DAT[^\n]*\n).*?\n(?=UNT)
试试这个。重铺$1$2。参见演示


@为什么你删除了你的答案?对不起,我的错。。。我给出了错误的输入和输出…您的答案对最初的问题有效。您想删除第二个DAT或第三个DAT中的所有行吗?
^(.*?DAT.*?)DAT.*?(UNT)