import Foundation
let pattern = #"^(.+)\=CellGet(.+)\(\'(.*)\'(.*)d_Plano, (\'.+\')"#
let regex = try! NSRegularExpression(pattern: pattern, options: .anchorsMatchLines)
let testString = #"""
nAdesaoInformatica=CellGetN ('Premissas_Consolidado', d_Convenio, d_Canal_Originacao, d_Plano, 'Adesão do contrato de informática (QUANTUM)');
nCarenciaDias=CellGetN ('Premissas_Consolidado', d_Convenio, d_Canal_Originacao, d_Plano, 'Carência (dias)');
nComissaoVistaNovo=CellGetN ('Premissas_Consolidado', d_Convenio, d_Canal_Originacao, d_Plano, 'Comissão à vista s/ valor novo (máximo 6%)');
nComissaoVistaRefin=CellGetN ('Premissas_Consolidado', d_Convenio, d_Canal_Originacao, d_Plano, 'Comissão à vista s/ valor refinanciamento nas Lojas');
nComissaoProducao=CellGetN ('Premissas_Consolidado', d_Convenio, d_Canal_Originacao, d_Plano, 'Comissão de Gestão da Produção');
nComissaoProRata=CellGetN ('Premissas_Consolidado', d_Convenio, d_Canal_Originacao, d_Plano, 'Comissão pró rata temporis s/valor novo');
nComissaoTotal=CellGetN ('Premissas_Consolidado', d_Convenio, d_Canal_Originacao, d_Plano, 'Comissão Total');
sConsignadoFederal=CellGetS ('Premissas_Consolidado', d_Convenio, d_Canal_Originacao, d_Plano, 'Consignado Federal? (Sim/Não)');
nCustoEntidConsig=CellGetN ('Premissas_Consolidado', d_Convenio, d_Canal_Originacao, d_Plano, 'Custo da Entidade Consignatária');
nCustoTedDoc=CellGetN ('Premissas_Consolidado', d_Convenio, d_Canal_Originacao, d_Plano, 'Custo de TED/Vale Postal/DOC/OP');
nCustoPortalConsig=CellGetN ('Premissas_Consolidado', d_Convenio, d_Canal_Originacao, d_Plano, 'Custo do portal de consignação');
nCustoCanalConsig=CellGetN ('Premissas_Consolidado', d_Convenio, d_Canal_Originacao, d_Plano, 'Custo mensal de manutenção do canal de consignação');
nNumeroContratos=CellGetN ('Premissas_Consolidado', d_Convenio, d_Canal_Originacao, d_Plano, 'Número de contratos');
nPerdaEsperada=CellGetN ('Premissas_Consolidado', d_Convenio, d_Canal_Originacao, d_Plano, 'Perda Esperada (Outros)');
nProbabilidada=CellGetN ('Premissas_Consolidado', d_Convenio, d_Canal_Originacao, d_Plano, 'Probabilidade liquidação antecipada (meses)');
nProderj=CellGetN ('Premissas_Consolidado', d_Convenio, d_Canal_Originacao, d_Plano, 'PRODERJ (Processamento de Dados)');
nProducao=CellGetN ('Premissas_Consolidado', d_Convenio, d_Canal_Originacao, d_Plano, 'Produção em R$');
nProporcaoContratado=CellGetN ('Premissas_Consolidado', d_Convenio, d_Canal_Originacao, d_Plano, 'Proporção do Valor Contratado');
nQuantidadePmt=CellGetN ('Premissas_Consolidado', d_Convenio, d_Canal_Originacao, d_Plano, 'Quantidade de PMTs');
nRentabilidadeAcionista=CellGetN ('Premissas_Consolidado', d_Convenio, d_Canal_Originacao, d_Plano, 'Rentabilidade mínima ao acionista (% a.a.)');
nSeguroPrestamista=CellGetN ('Premissas_Consolidado', d_Convenio, d_Canal_Originacao, d_Plano, 'Seguro Prestamista');
nTaxa=CellGetN ('Premissas_Consolidado', d_Convenio, d_Canal_Originacao, d_Plano, 'Taxa (a.m.)');
nZetrasoft=CellGetN ('Premissas_Consolidado', d_Convenio, d_Canal_Originacao, d_Plano, 'Valor pago a Zetrasoft');
nValorContratado=CellGetN ('Premissas_Consolidado', d_Convenio, d_Canal_Originacao, d_Plano, 'Valor Contratado');
nValorFinanciado=CellGetN ('Premissas_Consolidado', d_Convenio, d_Canal_Originacao, d_Plano, 'Valor Financiado');
nFunding=CellGetN ('Premissas_Consolidado', d_Convenio, d_Canal_Originacao, d_Plano, 'Funding (% DI)');
nCdi=CellGetN ('Premissas_Consolidado', d_Convenio, d_Canal_Originacao, d_Plano, 'CDI');
nCustoOportunidade=CellGetN ('Premissas_Consolidado', d_Convenio, d_Canal_Originacao, d_Plano, 'Custo de oportunidade (CDI atual a.a.)');
nPisCofins=CellGetN ('Premissas_Consolidado', d_Convenio, d_Canal_Originacao, d_Plano, 'PIS/COFINS');
nIndiceBasileia=CellGetN ('Premissas_Consolidado', d_Convenio, d_Canal_Originacao, d_Plano, 'Indice de Basiléia (médio)');
nValorNovo=CellGetN ('Premissas_Consolidado', d_Convenio, d_Canal_Originacao, d_Plano, 'Valor Novo');
nValorRefinaciado=CellGetN ('Premissas_Consolidado', d_Convenio, d_Canal_Originacao, d_Plano, 'Valor Refinanciado');
nPonderadorCapital=CellGetN ('Premissas_Consolidado', d_Convenio, d_Canal_Originacao, d_Plano, 'Ponderador de capital');
sDataCurvaBmf=CellGetS ('Premissas_Consolidado', d_Convenio, d_Canal_Originacao, d_Plano, 'Data Curva BM&F');
nIR=CellGetN ('Premissas_Consolidado', d_Convenio, d_Canal_Originacao, d_Plano, 'Imposto de Renda');
nAtivosRisco=CellGetN ('Premissas_Consolidado', d_Convenio, d_Canal_Originacao, d_Plano, 'Ativos ponderados pelo Risco');
nCapitalMinimoOp=CellGetN ('Premissas_Consolidado', d_Convenio, d_Canal_Originacao, d_Plano, 'Capital mínimo exigido para a operação');
nResultadoLiqAcionista=CellGetN ('Premissas_Consolidado', d_Convenio, d_Canal_Originacao, d_Plano, 'Resultado líquido mínimo exigido para atender ao acionista (a.a.)');
nResultadoBrutAcionista=CellGetN ('Premissas_Consolidado', d_Convenio, d_Canal_Originacao, d_Plano, 'Resultado bruto mínimo exigido para atender ao acionista (antes do IR & CSLL) (a.a.)');
nTirMinimaAcionista=CellGetN ('Premissas_Consolidado', d_Convenio, d_Canal_Originacao, d_Plano, 'TIR mínima para remunerar o acionista');
nCustoFixoMensal=CellGetN ('Premissas_Consolidado', d_Convenio, d_Canal_Originacao, d_Plano, 'Custo fixo mensal R$');
nCustoPmt=CellGetN ('Premissas_Consolidado', d_Convenio, d_Canal_Originacao, d_Plano, 'Custo por PMT %');
nMultiplicadorRentab=CellGetN ('Premissas_Consolidado', d_Convenio, d_Canal_Originacao, d_Plano, 'Multiplicador de rentabilidade');
nValorFaixaContratacao=CellGetN ('Premissas_Consolidado', d_Convenio, d_Canal_Originacao, d_Plano, 'Valor da Faixa de Contratação');
"""#
let stringRange = NSRange(location: 0, length: testString.utf16.count)
let substitutionString = #"CellPut\2(\1, 'Premissas_Consolidado_Historico' \4sDescPlano, sVersao, \5"#
let result = regex.stringByReplacingMatches(in: testString, range: stringRange, withTemplate: substitutionString)
print(result)
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Swift 5.2, please visit: https://developer.apple.com/documentation/foundation/nsregularexpression