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
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
  • Match everything enclosed
    (?:...)
  • Capture everything enclosed
    (...)
  • 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

/
/
g

Test String

Code Generator

Generated Code

# coding=utf8 # the above tag defines encoding for this document and is for Python 2.x compatibility import re regex = r"(?<=(?i:\bCPF\b\s))(?:<=(?:.+))?(?:\b\d{3}\.?\s?\d{3}\.?\s?\d{3}\-?\s?\d{2}\b)" test_str = ("CPF 065.983.164-97\n" "CPF 065 983 164 97\n" "CPF 06598316497\n" "CPF 123.456.789-09\n" "CPF 123 456 789 09\n" "CPF 12345678909\n\n" "Juliana Emanuela da Luz Souza portadora do CPF 008.543.213-30, recebe um salário de 1500,30 reais.\n" " Atualmente mora na Avenida dos logradouros 467 número 14, São Leopoldo e, por 40 horas é empregada na empresa Cristal Serrano com o CNPJ 13.123.321/4133-44. \n" "De acordo com o seu cadastro, possui o seguinte telefone de contato +55 (54) 99166-6508.\n" "Conforme vem a solicitar a Receita Federal é indicado que por meio deste documento disposto para o contribuinte de RG 183654527, uma multa no valor de 54 dólares seja cobrada por não possuir a CNH de número 10234556378 e carteira de trabalho 123 45678 91 0 validadas de acordo com a lei atribuída na tribuna com o endereço Avenida Júlio de Castilhos número 45000. \n" "Conforme sentenciado pelo juiz Carlos Romano de Freitas Pereira da Silva. As informações do indivíduo estão dispostas no email descubraoproblema@sindicato.com.br. \n" "Para fazer acesso ao email é necessário configurar o computador com que fique com o IPV4 utilizado seja 112.128.52.10 e o IPV6 deve ser 2001:ca8:0:1fe1::200. Para acessar a conta é necessário que o contribuinte utilize o número disposto na carteira de trabalho sendo esta 123.45678.91-0 e o número do passaporte sendo este CS123456. É importante que o usuário comprove os dados utilizando o número do título de eleitor 1234 5678 9101. O valor final que deverá ser pago deve corresponder a um valor simbólico de 7.891,12 brl. \n" "É Importante destacar a necessidade de mostrar o RG 123456789 e a CNH 12345678910.\n\n") matches = re.finditer(regex, test_str) for matchNum, match in enumerate(matches, start=1): print ("Match {matchNum} was found at {start}-{end}: {match}".format(matchNum = matchNum, start = match.start(), end = match.end(), match = match.group())) for groupNum in range(0, len(match.groups())): groupNum = groupNum + 1 print ("Group {groupNum} found at {start}-{end}: {group}".format(groupNum = groupNum, start = match.start(groupNum), end = match.end(groupNum), group = match.group(groupNum))) # Note: for Python 2.7 compatibility, use ur"" to prefix the regex and u"" to prefix the test string and substitution.

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 Python, please visit: https://docs.python.org/3/library/re.html