Folha de dicas interativa de regex com tabelas de sintaxe para metacaracteres, quantificadores, ancoras, grupos, lookaheads e flags.
sales@company.co.ukíndice 37| Padrão | Corresponde a | Exemplo de correspondência |
|---|---|---|
. |
Qualquer caractere exceto nova linha | a.c corresponde a abc, a1c, a-c |
\d |
Qualquer digito [0-9] |
\d{3} corresponde a 123 |
\D |
Qualquer não digito | \D+ corresponde a abc em abc123 |
\w |
Caractere de palavra [a-zA-Z0-9_] |
\w+ corresponde a hello_world |
\W |
Caractere que não e de palavra | \W corresponde a @ em user@host |
\s |
Espaço em branco (espaço, tabulação, nova linha) | \s+ corresponde a espaços entre palavras |
\S |
Não espaço em branco | \S+ corresponde a hello |
\t |
Caractere de tabulação | |
\n |
Nova linha |
| Padrão | Significado | Exemplo |
|---|---|---|
* |
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 |
| Padrão | Corresponde a | Exemplo |
|---|---|---|
^ |
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 |
\b |
Limite de palavra | \bgato\b corresponde a gato mas não gatos ou concatenate |
\B |
Limite que não e de palavra | \Bgato\B corresponde a concatenate mas não gato |
| Padrão | Significado | Exemplo |
|---|---|---|
(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|b |
Alternação (ou) | gato|cão corresponde a gato ou cão |
\1 |
Retroreferencia ao grupo 1 | (\w+)\s\1 corresponde a the the |
| Padrão | Corresponde a | Exemplo |
|---|---|---|
[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] |
Alfanumérico | Igual a \w menos sublinhado |
Asserções de largura zero: elas verificam uma condição sem consumir caracteres.
| Padrão | Tipo | Significado | Exemplo |
|---|---|---|---|
(?=foo) |
Lookahead positivo | Seguido por foo |
\d+(?= USD) corresponde a 100 em 100 USD |
(?!foo) |
Lookahead negativo | NÃO seguido por foo |
\d+(?! USD) corresponde a 200 em 200 EUR |
(?<=foo) |
Lookbehind positivo | Precedido por foo |
(?<=\$)\d+ corresponde a 50 em $50 |
(?<!foo) |
Lookbehind negativo | NÃO 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.
| Flag | Nome | Efeito |
|---|---|---|
g |
Global | Encontra todas as correspondências, não apenas a primeira |
i |
Insensível a maiúsculas/minúsculas | a corresponde a A e a |
m |
Multilinha | ^ e $ correspondem ainício/fim de linha, não apenas da string |
s |
Dotall | . corresponde também a caracteres de nova linha |
u |
Unicode | Habilita correspondência Unicode completa e tratamento adequado de pares substitutos |
Estes cobrem a maioria das necessidades de validaçã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).
[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}
https?://[^\s/$.?#].[^\s]*
\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 validaçã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
\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])
#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})\b
\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}
Corresponde a (555) 123-4567, 555-123-4567, 555.123.4567 e 5551234567.
A surpresa mais comum com regex. Dada a entrada <b>negrito</b> e <i>italico</i>:
| Padrão | Correspondência | Por 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.
/padrão/flags ou new RegExp('padrão', 'flags')string.match(/regex/g) retorna todas as correspondências como um arraystring.matchAll(/regex/g) retorna um iterador com detalhes dos grupos de capturastring.replace(/regex/g, substituição) substitui todas as correspondências(?<nome>...) acessados via match.groups.nome\d, \w, \s são apenas ASCII por padrão. Use a flag u para UnicodeNothing you paste leaves this tab. Every tool runs entirely in your browser — no upload, no server, no account.