0Pricing
Python Academy · Aula

re.sub, sinalizadores e padrões compilados

Substitua texto, use sinalizadores como IGNORECASE e compile padrões para reutilizá-los.

re.sub, sinalizadores e padrões compilados é uma aula grátis de Python Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Python Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Python Academy inclui 4 aulas no total.

Introdução

re.sub substitui correspondências. Os sinalizadores modificam o comportamento das correspondências. Os padrões compilados são eficientes para usos repetidos.

re.sub básico

re.sub(pattern, repl, string) substitui todas as correspondências por repl. O quarto argumento count= limita as substituições.
import re
result = re.sub(r'\d+', 'X', 'abc 123 def 456')
print(result)

re.sub com grupos

Use \1, \2 ou \g<1> na substituição para inserir grupos capturados. Use \g para grupos nomeados.
import re
# Swap first and last name
result = re.sub(r'(\w+),\s*(\w+)', r'\2 \1', 'Smith, John')
print(result)

re.sub com função

A substituição pode ser chamável: f(match) → string de substituição. Isso permite transformações complexas.
import re
def double_num(m): return str(int(m.group())*2)
result = re.sub(r'\d+', double_num, '1 cats and 2 dogs')
print(result)

re.IGNORECASE (re.I)

Torna o padrão indiferente a maiúsculas e minúsculas. r'hello' com re.I corresponde a 'HELLO', 'Hello' e assim por diante.
import re
print(re.findall(r'hello', 'Hello HELLO hello', re.I))

re.MULTILINE (re.M)

Faz ^ e $ corresponderem ao início e ao final de cada LINE, em vez da string inteira.
import re
text = 'first\nsecond\nthird'
print(re.findall(r'^\w+', text, re.M))

re.DOTALL (re.S)

Faz . corresponder também a quebras de linha. Sem ele, . para nos limites das linhas.
import re
text = 'line1\nline2'
print(re.search(r'line1.line2', text, re.S).group())

re.VERBOSE (re.X)

Permite comentários e espaços em branco no padrão para melhorar a legibilidade. Os espaços são ignorados; use \ + espaço para representar um espaço literal.
import re
pattern = re.compile(r'''
    (?P<year>\d{4})   # year
    -
    (?P<month>\d{2}) # month
    -
    (?P<day>\d{2})   # day
''', re.X)
print(pattern.search('2024-01-15').groupdict())

Combinando sinalizadores

Combine sinalizadores com |: re.I | re.M. Ou use sinalizadores incorporados (?im) no início do padrão.
import re
print(re.findall(r'^\w+', 'Hello\nWorld', re.I | re.M))

re.compile para desempenho

Compile um padrão uma vez com re.compile(). Chame métodos no objeto compilado: pat.search(), pat.findall().
import re
email_re = re.compile(r'[\w.+-]+@[\w-]+\.[\w.]+')
emails = ['user@example.com', 'invalid', 'test@test.org']
print([e for e in emails if email_re.fullmatch(e)])

re.escape()

re.escape(string) aplica escape a todos os caracteres especiais de expressões regulares em uma string, para que ela possa ser usada como um padrão literal.
import re
user_input = 'price.is $10+'
pattern = re.compile(re.escape(user_input))
text = 'The price.is $10+ today'
print(bool(pattern.search(text)))

Verificação rápida

Qual sinalizador faz . corresponder a quebras de linha nas expressões regulares do Python?

Recapitulação

re.sub: substituição por string, grupos ou função. Sinalizadores: re.I (maiúsculas e minúsculas), re.M (multilinha ^/$), re.S (o ponto corresponde a \n), re.X (detalhado). Compile para reutilizar.

Continue

Muito bem! A próxima lição espera por você.

Perguntas Frequentes

A aula “re.sub, sinalizadores e padrões compilados” é grátis?

Sim — o texto completo de “re.sub, sinalizadores e padrões compilados” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Python Academy, atualize para CoddyKit PRO. O curso de Python Academy inclui 4 aulas no total.

O que vou aprender em “re.sub, sinalizadores e padrões compilados”?

Substitua texto, use sinalizadores como IGNORECASE e compile padrões para reutilizá-los. Você pratica Python Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Python Academy?

Nenhuma experiência prévia é necessária. Python Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.

Quanto tempo leva a aula “re.sub, sinalizadores e padrões compilados”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Python Academy?

Sim. Cada aula de Python Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Fundamentos de expressões regulares
  2. Uso de re.match, re.search, re.findall
  3. Grupos e capturas nomeadas
  4. re.sub, sinalizadores e padrões compilados
← Voltar para Python Academy