替换单个匹配组中的多个命名组匹配

替换单个匹配组中的多个命名组匹配

我正在使用正则表达式从包含“标题”(RecordType、Order)和“子项”(ProdCode)数据的文本文件生成 SQL。我需要为每个子条目(而不仅仅是每个标题)创建一个语句。该文件如下所示:

RecordType:Amend
OrderNo:Order1
ProdCode:Product1
ProdCode:Product2
RecordType:Create
OrderNo:Order2
ProdCode:Product3
ProdCode:Product4

我希望从中得到这个:

insert into #Reset (RecordType, OrderNo, ProdCode) values ('Amend', 'Order1', 'Product1')
insert into #Reset (RecordType, OrderNo, ProdCode) values ('Amend', 'Order1', 'Product2')
insert into #Reset (RecordType, OrderNo, ProdCode) values ('Create', 'Order2', 'Product3')
insert into #Reset (RecordType, OrderNo, ProdCode) values ('Create', 'Order2', 'Product4')

我已成功使用以下正则表达式和替换将每个标题记录匹配并替换为子记录:

^RecordType:(?<RT>.+)$\r\n^OrderNo:(?<ORD>.+)$(\r\n^ProdCode:(?<PID>.+)$)+

INSERT INTO #Reset \(RecordType, strPoNo, strItemNo\) values \('$+{RT}', '$+{ORD}', '$+{PID}'\)

不幸的是,这只占用了最后一个ProdCode,所以我最终得到以下结果:

insert into #Reset (RecordType, OrderNo, ProdCode) values ('Amend', 'Order1', 'Product2')
insert into #Reset (RecordType, OrderNo, ProdCode) values ('Create', 'Order2', 'Product4')

有没有办法在一次替换操作中替换所有 ProdCode?

我正在使用 Notepad++ 6.8.1

相关内容