Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Sintaxe de Regex e Padrões Básicos | Introdução às Expressões Regulares
Expressões Regulares em Python

Sintaxe de Regex e Padrões Básicos

Deslize para mostrar o menu

Sintaxe de Regex: Blocos de Construção

Expressões regulares, ou regex, são construídas usando uma combinação de literais, metacaracteres, classes de caracteres e quantificadores. Compreender esses componentes é essencial para criar padrões eficazes.

  • Literais são caracteres comuns que correspondem a si mesmos. Por exemplo, o padrão "cat" corresponde exatamente à string "cat";
  • Metacaracteres são símbolos especiais que possuem significados únicos em regex. Os metacaracteres mais comuns incluem:
    • . (ponto): corresponde a qualquer caractere único, exceto uma nova linha;
    • ^: corresponde ao início de uma string;
    • $: corresponde ao final de uma string;
    • *: corresponde a zero ou mais ocorrências do elemento anterior;
    • +: corresponde a uma ou mais ocorrências do elemento anterior;
    • ?: corresponde a zero ou uma ocorrência do elemento anterior.
  • Classes de caracteres permitem corresponder a qualquer caractere de um conjunto de caracteres. Por exemplo, [abc] corresponde a "a", "b" ou "c", e [0-9] corresponde a qualquer dígito de 0 a 9.

Metacaracteres e Quantificadores Úteis Baseados em Letras

  • \w: corresponde a qualquer caractere de palavra (equivalente a [a-zA-Z0-9_]). Usado para corresponder letras, dígitos ou sublinhados individuais;
  • \W: corresponde a qualquer caractere que não seja de palavra (qualquer coisa que não seja correspondida por \w);
  • \d: corresponde a qualquer dígito (equivalente a [0-9]);
  • \D: corresponde a qualquer caractere que não seja dígito;
  • \b: corresponde a um limite de palavra (a posição entre um caractere de palavra e um caractere que não seja de palavra). Usado para corresponder palavras como unidades inteiras;
  • \B: corresponde a uma posição que não está em um limite de palavra.

Quantificadores

Quantificadores especificam quantas vezes o elemento anterior deve ocorrer:

  • *: corresponde a zero ou mais vezes; por exemplo, \w* corresponde a qualquer sequência de caracteres de palavra, incluindo uma string vazia;
  • +: corresponde a uma ou mais vezes; por exemplo, \w+ corresponde a uma ou mais letras, dígitos ou sublinhados consecutivos (como uma palavra);
  • ?: corresponde a zero ou uma vez; por exemplo, \w? corresponde a zero ou um caractere de palavra;
  • {n}: corresponde a exatamente n vezes; por exemplo, \w{3} corresponde exatamente a três caracteres de palavra em sequência;
  • {n,}: corresponde a n ou mais vezes; por exemplo, \w{2,} corresponde a dois ou mais caracteres de palavra;
  • {n,m}: corresponde a entre n e m vezes; por exemplo, \w{2,5} corresponde de dois a cinco caracteres de palavra em sequência.

Exemplos em Python

  • re.findall(r"\w+", "Regex123 is fun!") retorna todas as palavras: ["Regex123", "is", "fun"];
  • re.findall(r"\bcat\b", "The cat scattered the catalog.") corresponde apenas à palavra isolada "cat";
  • re.findall(r"\w{5}", "apple banana kiwi") encontra todas as sequências de exatamente cinco caracteres de palavra: ["apple", "banan"].

Esses metacaracteres e quantificadores são essenciais para corresponder letras, palavras e padrões semelhantes a palavras em textos usando a biblioteca re do Python.

123456789101112131415
import re text = "User123, admin42, guestX" # Find all digits digits = re.findall(r"[0-9]", text) print("Digits found:", digits) # Find all lowercase letters lowercase_letters = re.findall(r"[a-z]", text) print("Lowercase letters found:", lowercase_letters) # Find all uppercase letters uppercase_letters = re.findall(r"[A-Z]", text) print("Uppercase letters found:", uppercase_letters)

Neste exemplo, utiliza-se a função re.findall() para buscar correspondências na string "User123, admin42, guestX". O padrão [0-9] corresponde a qualquer dígito entre 0 e 9, encontrando todos os dígitos individuais no texto. O padrão [a-z] corresponde a qualquer letra minúscula de "a" a "z", e [A-Z] corresponde a qualquer letra maiúscula de "A" a "Z". Cada classe de caracteres é delimitada por colchetes, especificando o intervalo ou conjunto de caracteres a serem correspondidos. Esses padrões são fundamentais para extrair tipos específicos de caracteres de um texto.

123456789101112131415161718192021222324252627
import re text = "Hello_123 world! Regex is fun." # \w matches any word character (alphanumeric or underscore) word_chars = re.findall(r"\w", text) print("Word characters (\\w):", word_chars) # \W matches any non-word character non_word_chars = re.findall(r"\W", text) print("Non-word characters (\\W):", non_word_chars) # \b matches word boundaries words = re.findall(r"\b\w+\b", text) print("Words using word boundaries (\\b):", words) # * quantifier: zero or more word characters after 'o' pattern_star = re.findall(r"o\w*", text) print("'o' followed by zero or more word characters (o\\w*):", pattern_star) # + quantifier: one or more word characters after 'R' pattern_plus = re.findall(r"R\w+", text) print("'R' followed by one or more word characters (R\\w+):", pattern_plus) # ? quantifier: 'l' optionally followed by 'e' pattern_question = re.findall(r"le?", text) print("'l' optionally followed by 'e' (le?):", pattern_question)

Aqui você pode ver como usar a função re.findall() do Python com vários padrões de regex para extrair informações da string "Hello_123 world! Regex is fun.". Veja o que cada padrão faz:

  • \w: O padrão r"\w" corresponde a qualquer caractere de palavra, incluindo letras (maiúsculas e minúsculas), dígitos e o sublinhado (_). Na string fornecida, isso encontra cada caractere de palavra individualmente, como 'H', 'e', 'l', 'o', '1', '2', '3' e assim por diante.

  • \W: O padrão r"\W" corresponde a qualquer caractere que não seja de palavra. Isso inclui espaços, pontuação e símbolos que não são letras, dígitos ou sublinhados. Na string, isso encontra caracteres como espaços, o ponto de exclamação (!) e o ponto final (.).

  • \b: O padrão r"\b\w+\b" utiliza limites de palavra (\b) para corresponder palavras completas. Aqui, \w+ corresponde a um ou mais caracteres de palavra, então isso extrai palavras inteiras como 'Hello_123', 'world', 'Regex', 'is' e 'fun' como elementos separados.

  • Quantificador *: O padrão r"o\w*" corresponde ao caractere 'o' seguido de zero ou mais caracteres de palavra. Isso significa que irá corresponder a 'o' mesmo que não seja seguido de nenhum caractere de palavra, ou irá capturar uma sequência começando com 'o' e continuando com quaisquer caracteres de palavra seguintes. Na string, isso encontra 'o_123' (de 'Hello_123') e 'orld' (de 'world').

  • Quantificador +: O padrão r"R\w+" corresponde ao caractere 'R' seguido de um ou mais caracteres de palavra. Isso é útil para encontrar palavras que começam com 'R' e continuam com caracteres de palavra adicionais. Na string, isso encontra 'Regex'.

  • Quantificador ?: O padrão r"le?" corresponde à letra 'l' opcionalmente seguida de 'e'. O quantificador ? significa que o caractere anterior ('e') pode aparecer zero ou uma vez. Esse padrão irá corresponder tanto 'l' quanto 'le' onde quer que ocorram na string.

Cada um desses padrões destaca uma característica fundamental das expressões regulares—correspondência de tipos específicos de caracteres, limites e elementos repetidos—facilitando a extração ou análise de informações em textos no Python.

question mark

O que o padrão regex [a-z] corresponde?

Selecione a resposta correta

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 1. Capítulo 2

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Sintaxe de Regex e Padrões Básicos

Sintaxe de Regex: Blocos de Construção

Expressões regulares, ou regex, são construídas usando uma combinação de literais, metacaracteres, classes de caracteres e quantificadores. Compreender esses componentes é essencial para criar padrões eficazes.

  • Literais são caracteres comuns que correspondem a si mesmos. Por exemplo, o padrão "cat" corresponde exatamente à string "cat";
  • Metacaracteres são símbolos especiais que possuem significados únicos em regex. Os metacaracteres mais comuns incluem:
    • . (ponto): corresponde a qualquer caractere único, exceto uma nova linha;
    • ^: corresponde ao início de uma string;
    • $: corresponde ao final de uma string;
    • *: corresponde a zero ou mais ocorrências do elemento anterior;
    • +: corresponde a uma ou mais ocorrências do elemento anterior;
    • ?: corresponde a zero ou uma ocorrência do elemento anterior.
  • Classes de caracteres permitem corresponder a qualquer caractere de um conjunto de caracteres. Por exemplo, [abc] corresponde a "a", "b" ou "c", e [0-9] corresponde a qualquer dígito de 0 a 9.

Metacaracteres e Quantificadores Úteis Baseados em Letras

  • \w: corresponde a qualquer caractere de palavra (equivalente a [a-zA-Z0-9_]). Usado para corresponder letras, dígitos ou sublinhados individuais;
  • \W: corresponde a qualquer caractere que não seja de palavra (qualquer coisa que não seja correspondida por \w);
  • \d: corresponde a qualquer dígito (equivalente a [0-9]);
  • \D: corresponde a qualquer caractere que não seja dígito;
  • \b: corresponde a um limite de palavra (a posição entre um caractere de palavra e um caractere que não seja de palavra). Usado para corresponder palavras como unidades inteiras;
  • \B: corresponde a uma posição que não está em um limite de palavra.

Quantificadores

Quantificadores especificam quantas vezes o elemento anterior deve ocorrer:

  • *: corresponde a zero ou mais vezes; por exemplo, \w* corresponde a qualquer sequência de caracteres de palavra, incluindo uma string vazia;
  • +: corresponde a uma ou mais vezes; por exemplo, \w+ corresponde a uma ou mais letras, dígitos ou sublinhados consecutivos (como uma palavra);
  • ?: corresponde a zero ou uma vez; por exemplo, \w? corresponde a zero ou um caractere de palavra;
  • {n}: corresponde a exatamente n vezes; por exemplo, \w{3} corresponde exatamente a três caracteres de palavra em sequência;
  • {n,}: corresponde a n ou mais vezes; por exemplo, \w{2,} corresponde a dois ou mais caracteres de palavra;
  • {n,m}: corresponde a entre n e m vezes; por exemplo, \w{2,5} corresponde de dois a cinco caracteres de palavra em sequência.

Exemplos em Python

  • re.findall(r"\w+", "Regex123 is fun!") retorna todas as palavras: ["Regex123", "is", "fun"];
  • re.findall(r"\bcat\b", "The cat scattered the catalog.") corresponde apenas à palavra isolada "cat";
  • re.findall(r"\w{5}", "apple banana kiwi") encontra todas as sequências de exatamente cinco caracteres de palavra: ["apple", "banan"].

Esses metacaracteres e quantificadores são essenciais para corresponder letras, palavras e padrões semelhantes a palavras em textos usando a biblioteca re do Python.

123456789101112131415
import re text = "User123, admin42, guestX" # Find all digits digits = re.findall(r"[0-9]", text) print("Digits found:", digits) # Find all lowercase letters lowercase_letters = re.findall(r"[a-z]", text) print("Lowercase letters found:", lowercase_letters) # Find all uppercase letters uppercase_letters = re.findall(r"[A-Z]", text) print("Uppercase letters found:", uppercase_letters)

Neste exemplo, utiliza-se a função re.findall() para buscar correspondências na string "User123, admin42, guestX". O padrão [0-9] corresponde a qualquer dígito entre 0 e 9, encontrando todos os dígitos individuais no texto. O padrão [a-z] corresponde a qualquer letra minúscula de "a" a "z", e [A-Z] corresponde a qualquer letra maiúscula de "A" a "Z". Cada classe de caracteres é delimitada por colchetes, especificando o intervalo ou conjunto de caracteres a serem correspondidos. Esses padrões são fundamentais para extrair tipos específicos de caracteres de um texto.

123456789101112131415161718192021222324252627
import re text = "Hello_123 world! Regex is fun." # \w matches any word character (alphanumeric or underscore) word_chars = re.findall(r"\w", text) print("Word characters (\\w):", word_chars) # \W matches any non-word character non_word_chars = re.findall(r"\W", text) print("Non-word characters (\\W):", non_word_chars) # \b matches word boundaries words = re.findall(r"\b\w+\b", text) print("Words using word boundaries (\\b):", words) # * quantifier: zero or more word characters after 'o' pattern_star = re.findall(r"o\w*", text) print("'o' followed by zero or more word characters (o\\w*):", pattern_star) # + quantifier: one or more word characters after 'R' pattern_plus = re.findall(r"R\w+", text) print("'R' followed by one or more word characters (R\\w+):", pattern_plus) # ? quantifier: 'l' optionally followed by 'e' pattern_question = re.findall(r"le?", text) print("'l' optionally followed by 'e' (le?):", pattern_question)

Aqui você pode ver como usar a função re.findall() do Python com vários padrões de regex para extrair informações da string "Hello_123 world! Regex is fun.". Veja o que cada padrão faz:

  • \w: O padrão r"\w" corresponde a qualquer caractere de palavra, incluindo letras (maiúsculas e minúsculas), dígitos e o sublinhado (_). Na string fornecida, isso encontra cada caractere de palavra individualmente, como 'H', 'e', 'l', 'o', '1', '2', '3' e assim por diante.

  • \W: O padrão r"\W" corresponde a qualquer caractere que não seja de palavra. Isso inclui espaços, pontuação e símbolos que não são letras, dígitos ou sublinhados. Na string, isso encontra caracteres como espaços, o ponto de exclamação (!) e o ponto final (.).

  • \b: O padrão r"\b\w+\b" utiliza limites de palavra (\b) para corresponder palavras completas. Aqui, \w+ corresponde a um ou mais caracteres de palavra, então isso extrai palavras inteiras como 'Hello_123', 'world', 'Regex', 'is' e 'fun' como elementos separados.

  • Quantificador *: O padrão r"o\w*" corresponde ao caractere 'o' seguido de zero ou mais caracteres de palavra. Isso significa que irá corresponder a 'o' mesmo que não seja seguido de nenhum caractere de palavra, ou irá capturar uma sequência começando com 'o' e continuando com quaisquer caracteres de palavra seguintes. Na string, isso encontra 'o_123' (de 'Hello_123') e 'orld' (de 'world').

  • Quantificador +: O padrão r"R\w+" corresponde ao caractere 'R' seguido de um ou mais caracteres de palavra. Isso é útil para encontrar palavras que começam com 'R' e continuam com caracteres de palavra adicionais. Na string, isso encontra 'Regex'.

  • Quantificador ?: O padrão r"le?" corresponde à letra 'l' opcionalmente seguida de 'e'. O quantificador ? significa que o caractere anterior ('e') pode aparecer zero ou uma vez. Esse padrão irá corresponder tanto 'l' quanto 'le' onde quer que ocorram na string.

Cada um desses padrões destaca uma característica fundamental das expressões regulares—correspondência de tipos específicos de caracteres, limites e elementos repetidos—facilitando a extração ou análise de informações em textos no Python.

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 1. Capítulo 2
some-alt