Skip to main content

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

EscapeDescrição
\nNova linha
\tTabulaçã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:

  • \n virou nova linha
  • \t virou 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.