我需要编辑一个大型EDI消息,它基本上是一个包含数千条短行的文本文件。原因是它必须符合标准规范,并不是因为在某些段中有一个额外的QTY + 220线必须被删除。在那些具有4个QTY行的段中,必须删除QTY + 220。这是一个正确的部分:
SEQ++79'
MOA+9:1.87945:NOK'
QTY+58:0'
QTY+136:5'
QTY+260:5'
以下是不正确的细分:
SEQ++365'
MOA+9:1.31896:NOK'
QTY+58:0'
QTY+136:4'
QTY+220:0' <---- this line must be removed
QTY+260:4'
完整的文本文件约为75.000行,xml架构中有超过2200个这些验证错误。我尝试使用notepad ++和正则表达式进行搜索和替换,但我不能使它匹配多行。这是一行:
^QTY.*'
但是我希望它找到4个QTY线的匹配并删除第3行。我怎么能这样做?
答案 0 :(得分:3)
使用\n
来匹配换行符。
在您的示例中,替换
(QTY[^\n]+)\n(QTY[^\n]+)\n(QTY[^\n]+)\n(QTY[^\n]+)
带
$1\n$2\n$4
删除第三行