Referência completa de expressões regulares com sintaxe, flags, grupos, lookaheads e exemplos de padrões reais.
Experimentar no Testador de Regex →| Sintaxe | Descrição |
|---|---|
. | Any character except newline |
\d | Digit [0-9] |
\D | Non-digit [^0-9] |
\w | Word char [a-zA-Z0-9_] |
\W | Non-word character |
\s | Whitespace (space, tab, newline) |
\S | Non-whitespace |
[abc] | One of a, b, or c |
[^abc] | Not a, b, or c |
[a-z] | Character in range a–z |
[a-zA-Z] | Letter (any case) |
\p{L} | Any Unicode letter (u flag) |
| Sintaxe | Descrição |
|---|---|
^ | Start of string (or line with m flag) |
$ | End of string (or line with m flag) |
\b | Word boundary |
\B | Non-word boundary |
\A | Start of string (Python/Java) |
\Z | End of string (Python/Java) |
| Sintaxe | Descrição |
|---|---|
* | 0 or more (greedy) |
+ | 1 or more (greedy) |
? | 0 or 1 (optional) |
{n} | Exactly n times |
{n,} | n or more times |
{n,m} | Between n and m times |
*? | 0 or more (lazy) |
+? | 1 or more (lazy) |
?? | 0 or 1 (lazy) |
| Sintaxe | Descrição |
|---|---|
(abc) | Capturing group |
(?:abc) | Non-capturing group |
(?<name>abc) | Named capturing group |
\1 | Backreference to group 1 |
\k<name> | Named backreference |
(?|...) | Branch reset group (PCRE) |
| Sintaxe | Descrição |
|---|---|
(?=abc) | Positive lookahead — must be followed by abc |
(?!abc) | Negative lookahead — must NOT be followed by abc |
(?<=abc) | Positive lookbehind — must be preceded by abc |
(?<!abc) | Negative lookbehind — must NOT be preceded by abc |
| Sinalizador | Nome | Descrição |
|---|---|---|
g | Global | Find all matches, not just the first |
i | Case-insensitive | Match regardless of case (A = a) |
m | Multiline | ^ and $ match start/end of each line |
s | Dotall | . matches newline characters too |
u | Unicode | Enable full Unicode support (\p{} classes) |
y | Sticky | Match only at lastIndex position (JS) |
x | Extended | Allow whitespace + comments in pattern (Python/PHP) |
| Padrão | Regex | Teste |
|---|---|---|
[a-zA-Z0-9._%+\-]+@[a-zA-Z0-9.\-]+\.[a-zA-Z]{2,} | Experimentar no Testador de Regex → | |
| URL | https?:\/\/[\w\-]+(\.[\w\-]+)+[\w\-._~:/?#[\]@!$&'()*+,;=%]* | Experimentar no Testador de Regex → |
| IPv4 Address | \b(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\b | Experimentar no Testador de Regex → |
| Phone (US) | \+?1?[\s.-]?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4} | Experimentar no Testador de Regex → |
| Date (YYYY-MM-DD) | \d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01]) | Experimentar no Testador de Regex → |
| Time (HH:MM) | (?:[01]\d|2[0-3]):[0-5]\d | Experimentar no Testador de Regex → |
| UUID | [0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12} | Experimentar no Testador de Regex → |
| Hex Color | #(?:[0-9a-fA-F]{3}){1,2}\b | Experimentar no Testador de Regex → |
| Slug | [a-z0-9]+(?:-[a-z0-9]+)* | Experimentar no Testador de Regex → |
| ZIP Code (US) | \d{5}(?:-\d{4})? | Experimentar no Testador de Regex → |
| Credit Card | (?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|3[47][0-9]{13}) | Experimentar no Testador de Regex → |
| HTML Tag | <([a-zA-Z][a-zA-Z0-9]*)(?:\s[^>]*)?\/?>.*?<\/\1> | Experimentar no Testador de Regex → |
| Markdown Bold | \*\*([^*]+)\*\* | Experimentar no Testador de Regex → |
| JWT Token | [A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+ | Experimentar no Testador de Regex → |
| Semver | \bv?(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)(?:-[\w.]+)?\b | Experimentar no Testador de Regex → |
| GitHub Username | (?<=github\.com\/)([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,37}[a-zA-Z0-9])?) | Experimentar no Testador de Regex → |
| Positive Integer | ^[1-9]\d*$ | Experimentar no Testador de Regex → |
| Float / Decimal | -?\d+(?:\.\d+)? | Experimentar no Testador de Regex → |
| Blank Lines | ^\s*$ | Experimentar no Testador de Regex → |
| Duplicate Words | \b(\w+)\s+\1\b | Experimentar no Testador de Regex → |
Uma expressão regular é uma sequência de caracteres que define um padrão de pesquisa. É usada para pesquisa, correspondência e manipulação de strings. Regex é suportado nativamente em JavaScript, Python, Java, PHP, Go e a maioria das linguagens modernas.
Quantificadores gulosos (*, +, {n,m}) correspondem a tantos caracteres quanto possível. Quantificadores preguiçosos (*?, +?, {n,m}?) correspondem a tão poucos caracteres quanto possível.
Lookaheads (?=...) e lookbehinds (?<=...) são asserções de largura zero — verificam um padrão sem consumir caracteres. O lookahead positivo (?=foo) afirma que 'foo' se segue.
A sintaxe principal (classes de caracteres, quantificadores, âncoras) é consistente na maioria das linguagens. No entanto, funcionalidades como lookbehind, grupos nomeados e flags específicos variam consoante o motor.