import Foundation
let pattern = #"ORÇAMENTO Nº\s*\d{4}\/(?<id_operacao>\d+-\d)|Ano\sModelo:\s*(?<ano_fabr>\d{4})\/(?<ano_modelo>\d{4})(?:\s*.*){2}\nVeículo-Marca:\s*(?<ds_marca>.*?)-(?<ds_modelo>.*\s)|Data:\s(?<Data>\d{1,2}\/\d{1,2}\/\d{2,4})|Número.*sais\s*(?<prazo>\d{1,2})|E.1\s*(?<Volume_Financiado>(?:\d+\.\d+)*(?:,\d{1,2}))|F.6.*?E.4\)\s.*(?:\d+\.\d+)*,\d{1,2}(?<Volume_Financiado_IOF>(?:\d+\.\d+)*,\d{1,2})|\+\sC.1\s*(?<valor_bem>(?:\d+\.\d+)*(?:,\d{1,2}))|ENTRADA\s*C.1\s*(?<valor_entrada>(?:\d+\.\d+|\d+)*(?:,\d{1,2}))|% a.a.\s*(?:\d+\.\d+|\d{1,3})*(?:,\d{1,2})(?<iof_total>(?:\d+\.\d+|\d{1,3})*(?:,\d{1,2}))|B.9\s*(?:\d{1,3}\.\d{1,3},\d{2}|\d{1,3},\d{2})(?<valor_gravame>\d{1,3}\.\d{1,3},\d{2}|\d{1,3},\d{2})|HCE.*\)\s(?<Taxa_com_Imposto>\d+,\d+)|End.*o:\s*(?<Cliente>.*)(?:\s*.*){4}\n(?<CPF_CNPJ_Cliente>\d{3}\.\d{3}\.\d{3}-\d{2}|\d{2}\.\d{3}\.\d{3}\/\d{4}-\d{2})|Lojista:CNPJ:(?:\s*\.*)\n(?<Dealer_Group>.*)(?<Dealer>\d{3}\.\d{3}\.\d{3}\/\d{4}-\d{2})|financiadas\s*\n(?:\d,\d{2})(?<valor_tac>(?:\d{1,4}|\d{1,3}\.\d{1,3}),\d{2})|F.5\s*(?<Pmt>(?:\d{1,3}|\d{1,3}\.\d{1,3}),\d{2})|B.2\n(?:\d,\d{2})(?<vr_acessorios>(?:\d{1,3}|\d{1,3}\.\d{1,3}),\d{2})|Seguradora\nCNPJ(?:\s*.*){4}\nCNPJ:(?:\s*.*){1}\n(?<valor_seguro>(?:\d{1,3}|\d{1,3}\.\d{1,3}),\d{2})|F.4\s*\n(?<Taxa_sem_Imposto>\d+(?:,{0,1}\d{1,2}))"#
let regex = try! NSRegularExpression(pattern: pattern, options: .caseInsensitive)
let testString = #"""
ATENÇÃO: A efetiva contratação da operação de crédito, nestas condições, depende da autorização da instituição financeira responsável pelo presente orçamento.
ORÇAMENTO Nº
2019/7312134-1
ORÇAMENTO DE OPERAÇÃO DE CRÉDITO DIRETO
AO CONSUMIDOR (CDC) - PRODUTOS
DADOS DE RESPONSABILIDADE DO CORRESPONDENTE (CONCESSIONÁRIA / REVENDA / LOJISTA)
INFORMAÇÕES GERAIS: DADOS DO CONSUMIDOR E DO VEÍCULOA
A.1
Nome do(a) Consumidor(a):CPF / CNPJ do(a) solicitante:
Endereço e telefone de contato:
DANIEL AKIRA WATANABE
AV PASCHOAL THOMEU, 2278 - ( 11 ) 25362534
398.183.638-33
A.2
Ano Modelo:
2019/2020
Cor:
PRATA
Veículo-Marca:
HONDA-CITY(N.GERAÇÃO) DX-MT 1.5 16V
Combustível:
ALC/GAS
A.3
Concessionária / Revenda / Lojista:CNPJ:
ANDRE RIBEIRO - GUAR003.962.539/0002-09
B
VALOR FINANCIADO (PRINCIPAL + ACESSÓRIOS + SERVIÇOS DE TERCEIROS FINANCIADOS
R$% (²)
A PEDIDO DO CONSUMIDOR)
B.1
60.000,00
Valor do veículo à vista
B.2
1,01300,00
Acessórios - Financiados:
(x)sim ( )não
B.3
IPVA - Financiado:
( )sim (x)não0,000,00
B.4
0,000,00
Multas de trânsito - Financiadas:
( )sim (x)não
B.5
0,000,00
Licenciamento - Financiado:
( )sim (x)não
B.6
918,363,09
Seguro(s) - Financiado(s):
Seguro Casco
(x)sim ( )não
Seguradora
CNPJ:
CARDIF
Seguro Proteção Financeira
Seguro Garantia Estendida
Seguradora
Seguradora
CNPJ:
003.546.261/0001-08
CNPJ:
0,00
918,36
0,00
0,00
3,09
0,00
B.7
9,102.700,00
(x)sim ( )não
Despesas com despachante:
CNPJ:
B.8
Registro contrato - Cartório (cf. legislação estadual) - Financiadas:
( )sim (x)não0,000,00
B.9
0,45134,14
Registro contrato - Órgão de trânsito (CC, art. 1361 / Res. 320 CONTRAN) - Financiadas:
(x)sim ( )não
B.10
SUBTOTAL: VEÍCULO + ACESSÓRIOS + SERVIÇOS DE TERCEIROS FINANCIADOS A PEDIDO DO CONSUMIDOR
64.052,50
CPAGAMENTO INICIAL / ENTRADA
C.1
36.000,00
Valor da entrada
C.2
94,5228.052,50
Valor liberado a fornecedores
DADOS DE RESPONSABILIDADE DA INSTITUIÇÃO FINANCEIRA
TARIFAS (Conforme Resolução CMN 3.919/2010)D
D.1
Confecção de cadastro para início de relacionamento - Financiada:
(x)sim ( )não2,34695,00
D.2
Confecção de cadastro para início de relacionamento - (garantia de operação) - Financiada:
( )sim (x)não0,000,00
D.3Total de tarifas a serem financiadas
2,34695,00
EIOF - IMPOSTOS INCIDENTES SOBRE A OPERAÇÃO
E.1
28.747,50
Valor total a ser financiado sem impostos (B.10 - C.1 + D.3)
E.2
IOF - Financiado:
Alíquota:
3,00
% a.a.
2,75817,55
E.3
0,380,38112,32
IOF - Alíquota adicional (Decreto 6.339/08) - Financiado:
Alíquota:% única
E.4Total de impostos a serem financiados
3,13929,87
FDADOS DO FINANCIAMENTO
F.1
Data do 1° Vencimento
25/11/2019
F.2
Número de parcelas mensais
48
F.3
Valor total das parcelas intermediárias (quando houver)
0,00
F.4
12,3617,66
Taxa de juros mensal e anual
% a.m.:% a.a.:
F.5
846,78
Valor de cada parcela mensal
F.6VALOR TOTAL FINANCIADO (COM IMPOSTOS) (E.1 + E.4)
100,0029.677,37
GVALOR TOTAL PAGO AO FINAL (F5 X F2) + C.1
76.645,44
HCET - CUSTO EFETIVO TOTAL DA OPERAÇÃO (FÓRMULA DA RES: 3.517/07)
2,33
CET % a.m.:
CET % a.a.:
31,88
I
Prazo de validade do orçamento (¹): 03 DIAS ÚTEIS. Local: GUARULHOS-SP Data: 25/10/2019
J
Assinatura do Consumidor:
`sig,uid=39818363833,pid=7312134,ufn=DANIEL AKIRA WATANABE,ut=S,pt=PA,bio=0,r=1,offX=-30,offY=-60`
Canais de Atendimento ao Cliente: Alô Banco Honda: (11) 2172-7080 / SAC: 0800 722 2339 / Ouvidoria: 0800 774 6633 / Pessoas com Deficiência Auditiva: 0800 722 2341 / Site: www.bancohonda.com.br.
De acordo com a Lei Federal nº 12.741/2012, informamos as alíquotas máximas cobradas referente aos impostos federais, estaduais e municipais. PIS: 0,65%; Cofins: 4%; e ISS 5%.
OBS: (¹) - O prazo de validade aqui apontado refere-se às condições financeiras do orçamento, apenas, e não à disponibilidade do veículo, pelo mesmo período.
(²) - Os percentuais apresentados foram calculados com base no VALOR TOTAL FINANCIADO (F.6)
Agente Certificado CPF:
371.821.038-00
Nome:
PAMELA PRISCILA VIEIRA
ARAEX0850
"""#
let stringRange = NSRange(location: 0, length: testString.utf16.count)
let matches = regex.matches(in: testString, range: stringRange)
var result: [[String]] = []
for match in matches {
var groups: [String] = []
for rangeIndex in 1 ..< match.numberOfRanges {
let nsRange = match.range(at: rangeIndex)
guard !NSEqualRanges(nsRange, NSMakeRange(NSNotFound, 0)) else { continue }
let string = (testString as NSString).substring(with: nsRange)
groups.append(string)
}
if !groups.isEmpty {
result.append(groups)
}
}
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