Ir para o conteúdo
Allin

Bases de regex: guia para principiantes

Publicado a 10/10/2025 · 3 min de leitura · Ferramentas para programadores

Daniel Okonkwo

Daniel OkonkwoProgramador front-end e redator de Tecnologia na Allin

Desempenho web · Formatos de ficheiro

Verificado a partir de 2 fontes

Ver perfil
Em resumo

Uma expressão regular (regex) é um padrão para procurar texto. O essencial: os caracteres literais representam-se a si próprios, . corresponde a qualquer carácter, \d a um dígito, \w a um carácter de palavra, \s a um espaço; * significa zero ou mais, + um ou mais, ? opcional; [abc] corresponde a qualquer um dos listados, ^ e $ ancoram ao início e ao fim. Assim \d{3}-\d{4} corresponde a um número como 555-1234.

Uma expressão regular é um padrão para procurar texto. Eis os blocos — classes de caracteres, quantificadores e âncoras — com um exemplo.

Para que servem as regex

Uma expressão regular descreve um padrão em vez de uma cadeia exata, o que permite procurar, validar, extrair e substituir texto com muito mais flexibilidade. Em vez de procurar um número fixo, descreve a forma de qualquer número e encontra-os todos. Alimentam o procurar-substituir dos editores, a validação de formulários e a extração de dados de registos e textos.

Os blocos básicos

A maior parte de um padrão é texto literal que se representa a si próprio. Onde o texto varia, usa classes de caracteres: \d corresponde a um dígito, \w a um carácter de palavra (letras, dígitos, underscore), \s a um espaço, e o ponto . a quase qualquer carácter. Um conjunto entre parênteses retos como [aeiou] corresponde a um dos listados, e [^0-9] a tudo exceto esses.

Quantificadores e âncoras

Os quantificadores dizem quantas vezes o item anterior se pode repetir: * zero ou mais, + um ou mais, ? opcional (zero ou um), e {3} exatamente três, {2,4} entre dois e quatro. As âncoras fixam a correspondência: ^ marca o início do texto e $ o fim, por isso ^abc$ só corresponde à cadeia exata 'abc'. Os parênteses ( ) agrupam partes.

Um exemplo resolvido

Para encontrar um número como 555-1234, descreva a sua forma: três dígitos, um hífen, quatro dígitos. Isso é \d{3}-\d{4}. Para permitir também um indicativo opcional entre parênteses, pode estendê-lo passo a passo, testando à medida. Note que os quantificadores são gananciosos por omissão — agarram o máximo que podem — o que é bom lembrar quando os padrões ficam longos.

Testador de regexTesta uma expressão regular e vê o que ela faz: correspondências realçadas no texto, cada grupo capturado listado, um painel de substituição e o padrão relido peça a peça. As flags são botões que dizem o que mudam, e um padrão capaz de bloquear a página é assinalado antes de correr.Experimentar a ferramenta

Perguntas frequentes

O que significa \d em regex?
Corresponde a um dígito, de 0 a 9. Assim \d{3} corresponde a exatamente três dígitos seguidos.
Diferença entre * e +?
* corresponde a zero ou mais do item anterior, + a um ou mais — por isso + exige pelo menos uma ocorrência.
As regex são iguais em todas as linguagens?
A sintaxe básica é comum, mas os detalhes e variantes diferem entre JavaScript, Python, PCRE e outros — consulte a documentação da sua linguagem para casos limite.

Artigos que podem interessar-lhe

Todos os guias
ComparaçãoJSON vs XML: qual a diferença?JSON e XML armazenam ambos dados estruturados como texto, mas com compromissos diferentes. Eis como cada um se parece, onde cada um vence e como escolher.GuiaLocalizar e substituir: as armadilhas das expressões regulares, demonstradas uma a umaGanancioso contra preguiçoso sobre a mesma cadeia, o ponto que salta as quebras de linha, $& e $$ na substituição, uma regex /g reutilizada que salta uma linha em silêncio, e porque /i nada sabe do i turco. Cada falha executada no Node, com uma rotina contar-e-depois-substituir que as apanha.ExplicaçãoExtrair todos os endereços de e-mail ou URLs de um bloco de textoUm URL no fim de uma frase fica com o ponto; um endereço de e-mail no fim da mesma frase, não. Um nome acentuado dentro de um endereço volta truncado. Cada caso passou pelas ferramentas e a saída exata está aqui.ExplicaçãocamelCase vs snake_case: guia das convenções de nomenclatura no códigocamelCase, snake_case, PascalCase e kebab-case explicados: como cada um se apresenta, onde é a convenção e como escolher um de forma coerente.ExplicaçãoEscapar uma string para JSON: três carateres são obrigatórios, e um é uma armadilhaA RFC 8259 exige escapar exatamente três coisas dentro de uma string JSON. Tudo o resto é facultativo. O que parte mesmo os pipelines é um meio-substituto solto: legal no texto JSON, impossível em UTF-8, e substituído em silêncio assim que os seus dados são escritos.ExplicaçãoDe XML para JSON: atributos, repetição e a armadilha do array de um só elementoDois documentos que só diferem no número de filhos produzem duas formas JSON diferentes, e nenhum conversor os distingue sem um esquema. Além do que este faz mesmo com os atributos, o conteúdo misto e os espaços — e a única coisa que continua a não conseguir registar.

Ferramentas relacionadas

Fontes

Detetaste um erro neste artigo?