Por que vale a pena aprender Regex
Uma expressão regular bem elaborada pode substituir 50 linhas de código de análise manual de strings. Ele é executado em microssegundos. Funciona em praticamente todas as linguagens de programação. E depois de entender a sintaxe, você poderá escrever padrões que levariam horas para serem implementados com lógica condicional.
A barreira não são os conceitos – é a notação. Regex usa uma sintaxe densa e repleta de símbolos que parece algo sem sentido à primeira vista. Depois de aprender a lê-lo, você verá padrões em código, dados e texto que não conseguia ver antes.
Referência rápida de padrões essenciais
| Padrão | Partidas | Exemplo |
|---|---|---|
\d | Qualquer dígito 0–9 | \d{4} → 2025 |
\c | Letra, dígito ou sublinhado | \c+→ "olá_mundo" |
\s | Qualquer espaço em branco | \s+→ um ou mais espaços |
^ / $ | Início/fim da string | ^\d{5}$→ zip de exatamente 5 dígitos |
[abc] | Qualquer um dos seguintes: a, b ou c | [aeiou]→ qualquer vogal |
[^abc] | Qualquer coisa exceto a, b, c | [^\d]→ não dígito |
? | 0 ou 1 do anterior | cor→ cor OU cor |
+ | 1 ou mais | \d+→ um ou mais dígitos |
* | 0 ou mais | \d*→ zero ou mais dígitos |
{n,m} | Entre n e m vezes | \d{3,5}→ 3 a 5 dígitos |
Padrões que valem a pena marcar
- E-mail:
/^[\w.+-]+@[\w-]+\.[a-z]{2,}$/i - Extração de URL:
/https?:\/\/[^\s"'<>]+/g - Remova espaços em branco extras:
/\s+/g→ substitua por espaço único - Hashtags extras:
/#[\w]+/g - Corresponder apenas à palavra inteira:
/\bpalavra\b/
gflag para encontrar todas as correspondências (não apenas a primeira),eupara correspondência sem distinção entre maiúsculas e minúsculas eeufazer^e$combinar limites de linha em vez de limites de string. A maioria dos padrões regex do mundo real precisa de pelo menosgoueu.O que é “retrocesso catastrófico”?
Padrões como(a+)+aplicado a uma string longa e sem correspondência causa um tempo de processamento exponencial - seu mecanismo regex fica preso tentando exponencialmente mais combinações. Evite quantificadores aninhados em padrões sobrepostos. O padrão(a+)+bem "aaaaaaaaaaaaaaac" irá travar um servidor.
O regex JavaScript funciona da mesma forma que Python?
Principalmente sim, com diferenças em grupos nomeados (JS usa(?<nome>), Python EUA(?P<nome>)), alguns recursos de lookahead/lookbehind e notação de classe de caracteres. Este testador usa o mecanismo JavaScript – teste em seu idioma alvo se o comportamento for diferente.