Substituir várias correspondências de grupos nomeados em um único grupo de correspondência

0

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

    
por Rhumborl 23.10.2017 / 14:12

0 respostas