Я использую регулярное выражение для генерации 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