现状:
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片段无法区分,我想保留第一个,只删除第二个....我有更多困难
答案 0 :(得分:0)
你需要使用DOTALL模式(?s)
使点匹配均匀的线刹车,
(?s)^(.*?DAT.*?DAT[^\n]*\n).*?\n(?=UNT)
然后将匹配替换为$1
好像你在第三次DAT后试图删除这些行。如果是,那么你可以尝试以下,
(?s)^(.*?DAT.*?DAT.*?DAT[^\n]*\n).*?\n(?=UNT)
答案 1 :(得分:0)