如何使用多行正则表达式进行搜索和替换?

时间:2013-12-04 11:43:50

标签: regex notepad++

我需要编辑一个大型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行。我怎么能这样做?

1 个答案:

答案 0 :(得分:3)

使用\n来匹配换行符。

在您的示例中,替换

(QTY[^\n]+)\n(QTY[^\n]+)\n(QTY[^\n]+)\n(QTY[^\n]+)

$1\n$2\n$4

删除第三行