notepad ++ regex:删除关键字之间的多行

时间:2014-11-20 07:37:37

标签: 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'&
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片段无法区分,我想保留第一个,只删除第二个....我有更多困难

2 个答案:

答案 0 :(得分:0)

你需要使用DOTALL模式(?s)使点匹配均匀的线刹车,

(?s)^(.*?DAT.*?DAT[^\n]*\n).*?\n(?=UNT)

然后将匹配替换为$1

DEMO

好像你在第三次DAT后试图​​删除这些行。如果是,那么你可以尝试以下,

(?s)^(.*?DAT.*?DAT.*?DAT[^\n]*\n).*?\n(?=UNT)

DEMO

答案 1 :(得分:0)

^(.*?DAT.*?)DAT.*?(UNT)

试试这个。$1$2。见。演示。

http://regex101.com/r/lZ5mN8/56