Regex Tester

Folha de Dicas Regex: Referencia Rapida de Expressões Regulares

Folha de dicas interativa de regex com tabelas de sintaxe para metacaracteres, quantificadores, ancoras, grupos, lookaheads e flags.

100% no navegador. Seus dados nunca saem do seu computador.

//g
2 correspondências
Contact us at support@example.com or sales@company.co.uk for help. Invalid emails: @missing.com, no-at-sign, user@.bad
Detalhes da Correspondência

Ferramentas Relacionadas

Caracteres

PadrãoCorresponde aExemplo de correspondencia
.Qualquer caractere exceto nova linhaa.c corresponde a abc, a1c, a-c
\dQualquer digito [0-9]\d{3} corresponde a 123
\DQualquer não digito\D+ corresponde a abc em abc123
\wCaractere de palavra [a-zA-Z0-9_]\w+ corresponde a hello_world
\WCaractere que não e de palavra\W corresponde a @ em user@host
\sEspaço em branco (espaço, tabulação, nova linha)\s+ corresponde a espaços entre palavras
\SNão espaço em branco\S+ corresponde a hello
\tCaractere de tabulação
\nNova linha

Quantificadores

PadrãoSignificadoExemplo
*0 ou mais (guloso)ab*c corresponde a ac, abc, abbc
+1 ou mais (guloso)ab+c corresponde a abc, abbc mas não ac
?0 ou 1 (opcional)colou?r corresponde a color e colour
{3}Exatamente 3\d{3} corresponde a 123 mas não 12
{2,5}Entre 2 e 5\w{2,5} corresponde de ab a abcde
{3,}3 ou mais\d{3,} corresponde a 123, 1234, 12345
*?0 ou mais (preguiçoso)".*?" corresponde a string entre aspas mais curta
+?1 ou mais (preguiçoso)<.+?> corresponde a uma única tag HTML

Ancoras

PadrãoCorresponde aExemplo
^Inıcio da string (ou linha com flag m)^Ola corresponde a Ola mundo
$Final da string (ou linha com flag m)mundo$ corresponde a Ola mundo
\bLimite de palavra\bgato\b corresponde a gato mas não gatos ou concatenate
\BLimite que não e de palavra\Bgato\B corresponde a concatenate mas não gato

Grupos e Alternação

PadrãoSignificadoExemplo
(abc)Grupo de captura(ha)+ corresponde a haha, captura ha
(?:abc)Grupo não capturador(?:ha)+ corresponde a haha, sem captura
(?<nome>abc)Grupo de captura nomeado(?<ano>\d{4}) captura ano pelo nome
a|bAlternação (ou)gato|cão corresponde a gato ou cão
\1Retroreferencia ao grupo 1(\w+)\s\1 corresponde a the the

Classes de Caracteres

PadrãoCorresponde aExemplo
[abc]Qualquer um de a, b ou c[aeiou] corresponde a qualquer vogal
[^abc]Não a, b ou c[^0-9] corresponde a qualquer não digito
[a-z]Intervalo: de a a z[a-zA-Z] corresponde a qualquer letra
[a-zA-Z0-9]AlfanumericoIgual a \w menos sublinhado

Lookaheads e Lookbehinds

Asserções de largura zero: elas verificam uma condição sem consumir caracteres.

PadrãoTipoSignificadoExemplo
(?=foo)Lookahead positivoSeguido por foo\d+(?= USD) corresponde a 100 em 100 USD
(?!foo)Lookahead negativoNAO seguido por foo\d+(?! USD) corresponde a 200 em 200 EUR
(?<=foo)Lookbehind positivoPrecedido por foo(?<=\$)\d+ corresponde a 50 em $50
(?<!foo)Lookbehind negativoNAO precedido por foo(?<!\$)\d+ corresponde a 50 em EUR 50

Lookbehinds devem ter comprimento fixo na maioria dos motores. JavaScript adicionou lookbehinds de comprimento variavel no ES2018, mas o suporte do Safari ficou defasado até 2023.

Flags

FlagNomeEfeito
gGlobalEncontra todas as correspondencias, não apenas a primeira
iInsensível a maiusculas/minusculasa corresponde a A e a
mMultilinha^ e $ correspondem a inıcio/fim de linha, não apenas da string
sDotall. corresponde também a caracteres de nova linha
uUnicodeHabilita correspondencia Unicode completa e tratamento adequado de pares substitutos

Padrões Comuns

Estes cobrem a maioria das necessidades de válidação do mundo real. Todos os padrões são simplificados para legibilidade. Sistemas de produção devem usar analisadores dedicados para formatos complexos como email (RFC 5322).

Email (simplificado)

[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}

URL

https?://[^\s/$.?#].[^\s]*

Endereço IPv4

\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b

Não válida que os octetos estão entre 0-255. Para válidação rigorosa, use: \b(25[0-5]|2[0-4]\d|[01]?\d\d?)(\.(25[0-5]|2[0-4]\d|[01]?\d\d?)){3}\b

Data (AAAA-MM-DD)

\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])

Cor hexadecimal

#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})\b

Numero de telefone (EUA, flexıvel)

\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}

Corresponde a (555) 123-4567, 555-123-4567, 555.123.4567 e 5551234567.

Gulosó vs Preguiçosó

A surpresa mais comum com regex. Dada a entrada <b>negrito</b> e <i>italico</i>:

PadrãoCorrespondenciaPor que
<.+><b>negrito</b> e <i>italico</i>Guloso: corresponde do primeiro < ao último >
<.+?><b>, </b>, <i>, </i>Preguiçoso: corresponde de cada < ao > mais próximo

O comportamento padrão e guloso. Adicione ? a qualquer quantificador para torna-lo preguiçoso.

Notas Específicas do JavaScript