Я использую регулярное выражение для генерации SQL из текстового файла, содержащего данные "header" (RecordType, Order) и "child" (ProdCode). Мне нужно утверждение для каждой дочерней записи, а не только для каждого заголовка. Файл выглядит примерно так:

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')

Есть ли способ заменить все ProdCodes за одну операцию замены?

Я использую Блокнот ++ 6.8.1

0