Prática guiada

Exercícios de Regex com soluções explicadas

Tente resolver antes de abrir a resposta. A lista começa com padrões simples e termina com grupos nomeados, lookahead e lookbehind.

Como estudar: copie apenas o enunciado para o Playground, crie seus próprios casos positivos e negativos e só depois compare com a solução.
Básico

01. Somente dígitos

Aceite 12345 e rejeite A123, 12-34 e string vazia.

Ver solução e explicação
^\d+$

^ e $ obrigam a string inteira; \d+ exige um ou mais dígitos.

Básico

02. Exatamente quatro dígitos

Aceite 2026 e rejeite 26 e 20260.

Ver solução e explicação
^\d{4}$

{4} define quantidade exata.

Básico

03. Prefixo DEV

Aceite códigos como DEV-0001 e DEV-9821.

Ver solução e explicação
^DEV-\d{4}$

Combine um trecho literal com quatro dígitos.

Básico

04. Extensão de imagem

Aceite nomes terminados em .jpg, .jpeg ou .png, ignorando caixa.

Ver solução e explicação
^.+\.(?:jpe?g|png)$

jpe?g cobre jpg/jpeg; use flag i para caixa.

Intermediário

05. CEP formatado

Aceite 41810-000 e rejeite 41810000.

Ver solução e explicação
^\d{5}-\d{3}$

Cinco dígitos, hífen e três dígitos.

Intermediário

06. Data DD/MM/AAAA

Aceite o formato visual de 17/09/2026.

Ver solução e explicação
^\d{2}/\d{2}/\d{4}$

A Regex verifica formato; validade de calendário é outra etapa.

Intermediário

07. Telefone celular

Aceite apenas (71) 99999-1234.

Ver solução e explicação
^\(\d{2}\) \d{5}-\d{4}$

Parênteses literais precisam de escape.

Intermediário

08. Usuário de sistema

Aceite 4 a 16 caracteres com letras, dígitos e underscore.

Ver solução e explicação
^\w{4,16}$

Em JavaScript, \w cobre letras ASCII, dígitos e underscore.

Intermediário

09. Log INFO/WARN/ERROR

Aceite linhas que começam com INFO, WARN ou ERROR.

Ver solução e explicação
^(?:INFO|WARN|ERROR)\b

Use grupo sem captura quando só precisa agrupar alternativas.

Intermediário

10. Capturar usuário do e-mail

Capture separadamente usuário e domínio em dev@site.com.

Ver solução e explicação
^(?<usuario>[\w.-]+)@(?<dominio>[\w.-]+)\.[A-Za-z]{2,}$

Grupos nomeados deixam o resultado legível no Raio-X.

Avançado

11. Preço antes de reais

Capture apenas os dígitos em 150 reais.

Ver solução e explicação
\d+(?= reais)

O lookahead exige o contexto sem incluí-lo no match.

Avançado

12. Valor depois de R$

Capture apenas 150 em R$ 150.

Ver solução e explicação
(?<=R\$ )\d+

O lookbehind verifica o que vem imediatamente antes.

Avançado

13. Negar admin

Aceite nomes em minúsculas, exceto exatamente admin.

Ver solução e explicação
^(?!admin$)[a-z]+$

O lookahead negativo barra um caso específico antes do restante.

Avançado

14. ID em contexto

Capture ABC-2026 somente quando estiver entre ID: e ;OK.

Ver solução e explicação
(?<=ID:)(?<codigo>[A-Z]{3}-\d{4})(?=;OK$)

Combina lookbehind, grupo nomeado e lookahead.

Avançado

15. URL HTTP/HTTPS

Aceite URLs completas iniciadas por http ou https.

Ver solução e explicação
^https?://[\w.-]+\.[A-Za-z]{2,}(?:/.*)?$

O s? torna o s opcional; o caminho final também é opcional.

Avançado

16. IPv4 estrutural

Aceite quatro blocos de 1 a 3 dígitos separados por ponto.

Ver solução e explicação
^(?:\d{1,3}\.){3}\d{1,3}$

É só estrutura: 999.999.999.999 ainda passaria.

Avançado

17. CNPJ formatado

Aceite o formato 12.345.678/0001-90.

Ver solução e explicação
^\d{2}\.\d{3}\.\d{3}/\d{4}-\d{2}$

A Regex não calcula dígitos verificadores.

Avançado

18. Extrair chave de log

Capture o valor de requestId em requestId=abc-123.

Ver solução e explicação
\brequestId=(?<id>[A-Za-z0-9-]+)

Um grupo nomeado separa a chave do valor que interessa.

Quer feedback automático?

As 24 fases do jogo avaliam falsos positivos, alvos perdidos, score, XP e agora mostram o Raio-X de grupos capturados.

Resolver as 24 fasesAbrir Playground