Regular Expressions 101

Save & Share

Flavor

  • PCRE2 (PHP >=7.3)
  • PCRE (PHP <7.3)
  • ECMAScript (JavaScript)
  • Python
  • Golang
  • Java 8
  • .NET 7.0 (C#)
  • Rust
  • Regex Flavor Guide

Function

  • Match
  • Substitution
  • List
  • Unit Tests

Tools

Sponsors
There are currently no sponsors. Become a sponsor today!
An explanation of your regex will be automatically generated as you type.
Detailed match information will be displayed here automatically.
  • All Tokens
  • Common Tokens
  • General Tokens
  • Anchors
  • Meta Sequences
  • Quantifiers
  • Group Constructs
  • Character Classes
  • Flags/Modifiers
  • Substitution
  • A single character of: a, b or c
    [abc]
  • A character except: a, b or c
    [^abc]
  • A character in the range: a-z
    [a-z]
  • A character not in the range: a-z
    [^a-z]
  • A character in the range: a-z or A-Z
    [a-zA-Z]
  • Any single character
    .
  • Alternate - match either a or b
    a|b
  • Any whitespace character
    \s
  • Any non-whitespace character
    \S
  • Any digit
    \d
  • Any non-digit
    \D
  • Any word character
    \w
  • Any non-word character
    \W
  • Non-capturing group
    (?:...)
  • Capturing group
    (...)
  • Zero or one of a
    a?
  • Zero or more of a
    a*
  • One or more of a
    a+
  • Exactly 3 of a
    a{3}
  • 3 or more of a
    a{3,}
  • Between 3 and 6 of a
    a{3,6}
  • Start of string
    ^
  • End of string
    $
  • A word boundary
    \b
  • Non-word boundary
    \B

Regular Expression
No Match

/
/
gi

Test String

Code Generator

Generated Code

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