Python R-Strings e Escape Sequence | String | Python
- Python R-Strings e Escape Sequence | String | Python
Introdução
Em Python, strings são sequências de caracteres usadas para representar texto. Durante o processamento dessas strings, o interpretador reconhece sequências de escape, que são combinações especiais iniciadas por \ (barra invertida).
As R-strings (Raw strings) são uma forma de escrever strings onde essas sequências não são interpretadas, sendo tratadas literalmente.
Este recurso é muito útil quando trabalhamos com:
- Expressões regulares
- Caminhos de arquivos (especialmente no Windows)
- Strings que possuem muitas barras invertidas
Escape Sequences em Python
Uma escape sequence é uma combinação de caracteres que representa um caractere especial.
Exemplos comuns
| Escape | Descrição |
|---|---|
\n | Nova linha |
\t | Tabulação |
\\ | Barra invertida |
\' | Aspas simples |
\" | Aspas duplas |
Exemplo básico
texto = "Olá\nMundo"
print(texto)
Saída:
Olá
Mundo
Neste caso, \n é interpretado como uma quebra de linha.
Problemas comuns com Escape Sequences
Quando usamos strings com muitos caracteres \, o Python pode interpretar esses caracteres de forma inesperada.
Exemplo
caminho = "C:\novo\teste"
print(caminho)
Saída:
C:
ovo este
Isso acontece porque:
\nvirou nova linha\tvirou tabulação
O que são R-Strings (Raw Strings)
As R-strings são strings prefixadas com r ou R, que informam ao Python para não interpretar escape sequences.
Sintaxe
r"texto"
Exemplo
caminho = r"C:\novo\teste"
print(caminho)
Saída:
C:\novo\teste
Neste caso, a barra invertida é tratada literalmente.
Quando usar R-Strings
1. Caminhos de arquivos
path = r"C:\Users\Joao\Documentos\arquivo.txt"
Sem R-string, seria necessário escapar todas as barras:
path = "C:\\Users\\Joao\\Documentos\\arquivo.txt"
2. Expressões regulares
Bibliotecas como re usam muitos caracteres especiais.
import re
pattern = r"\d+"
resultado = re.findall(pattern, "123 abc 456")
print(resultado)
Regras e Limitações
1. Não pode terminar com barra invertida
Isso gera erro:
texto = r"teste\"
Isso acontece porque a barra final escaparia a aspa.
Solução:
texto = r"teste\\"
2. Pode usar aspas normalmente
print(r"Ele disse: \"Olá\"")
Diferença entre String normal e R-String
String normal
print("Linha1\nLinha2")
R-string
print(r"Linha1\nLinha2")
Saída:
Linha1\nLinha2
Boas práticas
-
Use R-strings quando:
- Trabalhar com regex
- Caminhos de arquivos
- Strings com muitas barras invertidas
-
Evite R-strings se:
- Você precisa que o Python interprete escapes
- A string termina com
\
-
Prefira manter consistência no código.
Exemplos adicionais
Misturando prefixos
É possível combinar r com outros prefixos, como f:
nome = "João"
texto = rf"Usuário: {nome}\n"
print(texto)
Comparação prática
# Sem R-string
regex1 = "\\d+"
# Com R-string
regex2 = r"\d+"
A segunda opção é mais legível e fácil de manter.