Estou usando uma Expressão Regular para gerar SQL a partir de um arquivo de texto contendo dados "header" (RecordType, Order) e "child" (ProdCode). Preciso de uma declaração para cada entrada de filho, não apenas para cada cabeçalho. O arquivo é parecido com o seguinte:
RecordType:Amend
OrderNo:Order1
ProdCode:Product1
ProdCode:Product2
RecordType:Create
OrderNo:Order2
ProdCode:Product3
ProdCode:Product4
do qual gostaria de obter isto:
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')
Eu consegui combinar e substituir cada registro de cabeçalho por uma criança usando esta regex e substituição:
^RecordType:(?<RT>.+)$\r\n^OrderNo:(?<ORD>.+)$(\r\n^ProdCode:(?<PID>.+)$)+
INSERT INTO #Reset \(RecordType, strPoNo, strItemNo\) values \('$+{RT}', '$+{ORD}', '$+{PID}'\)
Infelizmente, isso leva apenas o último ProdCode
do grupo, por isso acabo com o seguinte:
insert into #Reset (RecordType, OrderNo, ProdCode) values ('Amend', 'Order1', 'Product2')
insert into #Reset (RecordType, OrderNo, ProdCode) values ('Create', 'Order2', 'Product4')
Existe uma maneira de substituir todos os ProdCodes em uma operação de substituição?
Estou usando o Notepad ++ 6.8.1