ToolHub
View All Posts

Hoja de referencia de expresiones regulares e patrones comuns

As expresiones regulares, o regex, são ferramentas poderosas de coincidencia de patrones utilizadas em praticamente todos os lenguajes de programação e editores de texto. Embora a sintaxe pode parecer críptica a primera vista, dominar o regex te permite buscar, validar, extrair e transformar texto com uma precisão que requeriria docenas de linhas de código procedural. Esta guia cobre a sintaxe esencial, patrones comuns e dicas práticos que necessitas conhecer.

Hoja de referencia de sintaxe básica de regex

Clases de caracteres

PatrónSignificadoExemplo
.Qualquer carácter exceto nova linhaa.c coincide com abc, a1c, a c
\dQualquer dígito (0-9)\d\d coincide com 42
\DQualquer no dígito\D coincide com a, !, espaço
\wCarácter de palavra (a-z, A-Z, 0-9, _)\w+ coincide com hello_123
\WNo carácter de palavra\W coincide com @, #, espaço
\sCarácter de espaço em branco (espaço, tabulação, nova linha)a\sb coincide com a b
\SNo espaço em branco\S+ coincide com hello
[abc]Qualquer carácter do conjunto[aeiou] coincide com vocales
[^abc]Qualquer carácter no no conjunto[^0-9] coincide com no dígitos
[a-z]Rango de caracteres[A-Za-z] coincide com qualquer letra

Cuantificadores

PatrónSignificadoExemplo
*Cero o mais vecesab*c coincide com ac, abc, abbc
+Uma o mais vecesab+c coincide com abc, abbc
?Cero o uma vezcolou?r coincide com cor, colour
{n}Exatamente n veces\d{4} coincide com 4 dígitos
{n,}n o mais veces\d{2,} coincide com 2 o mais dígitos
{n,m}n a m veces\d{3,5} coincide com 3-5 dígitos

Anclas e límites

PatrónSignificadoExemplo
^Inicio de cadena o linha^Hello coincide com Hello ao inicio
$Fin de cadena o linhaworld$ coincide com world no final
\bLímite de palavracat coincide com cat como palavra independiente
\BNo límite de palavra\Bcat coincide com scattered

Agrupação e alternancia

PatrónSignificadoExemplo
(abc)Grupo de captura(ab)+ coincide com abab
(?:abc)Grupo no capturador(?:ab)+ coincide com abab
a|bAlternancia (OR)cat|dog coincide com cat o dog
\1Referencia inversa ao grupo 1(\w) coincide com aa, bb
abc)Grupo de captura nombradoReferenciado por name

Patrones comuns de expresiones regulares

Aquí estão os patrones regex mais comumente utilizados em desenvolvimento web e validação de datos:

Validação de correio electrónico

Um regex de correio electrónico prático que captura a maioria das direcciones inválidas sem ser demasiado estricto: ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$. Este patrón valida a estrutura básica do correio electrónico enquanto permite caracteres comuns na parte local e requer um nombre de dominio válido com um TLD de pelo menos dois caracteres.

Validação de URL

Coincide com URLs HTTP e HTTPS: ^https?:\/\/(www\.)?[a-zA-Z0-9-]+\.[a-zA-Z]{2,}(\/[^\s]*)?$. Este patrón coincide com URLs com prefijo www opcional, nombre de dominio e ruta opcional.

Número de teléfono (EE. UU.)

Vários formatos de números de teléfono de EE. UU.: ^\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}$. Este patrón maneja formatos como (555) 123-4567, 555-123-4567 e 5551234567.

Direcção IP (IPv4)

Valida direcciones IPv4: ^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$. Este patrón asegura que cada octeto esté entre 0 e 255.

Fecha (YYYY-MM-DD)

Formato de fecha ISO: ^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$. Este patrón valida a estrutura do formato mas no verifica fechas válidas por mes.

Código de cor hexadecimal

Coincide com cores hexadecimais CSS: ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$. Este patrón coincide com os formatos abreviado de 3 dígitos (#fff) e completo de 6 dígitos (#ffffff).

Técnicas avanzadas

Lookahead e lookbehind

As aserciones de lookahead e lookbehind te permitem coincidir com um patrón solo quando está seguido (o precedido) por (o no por) outro patrón, sem incluir o texto circundante no resultado de a coincidencia.

Coincidencia codiciosa vs. perezosa

<.*>bold<.*?>".

Dica profissional: Usa siempre cuantificadores perezosos ao extrair conteúdo entre delimitadores como tags HTML o comillas para evitar coincidir com demasiado texto. A coincidencia codiciosa é a fuente mais comum de erros de regex.

Dicas de performance de regex

Experimenta e depuração de regex

Siempre experimenta tuas patrones regex com entradas do mundo real antes de implementarlos. Usa um probador de regex interactivo que resalte as coincidencias em tiempo real e explique cada parte de tua patrón. Isto te ajuda a detectar casos límite e entender por que tua patrón coincide o no com entradas específicas. Experimenta nosso probador de regex gratuito para construir e testar tuas patrones de forma interactiva.

Usa nossas ferramentas gratuitas para construir, testar e depurar tuas patrones de expresiones regulares.

Experimenta o probador de regexHoja de referencia de regex

Perguntas frequentes

Qual é a diferença entre coincidencia regex codiciosa e perezosa?

Os cuantificadores codiciosos coincidem com a mayor quantidade de texto possível, enquanto que os cuantificadores perezosos coincidem com a menor quantidade possível. Adicionar um signo de interrogação depois de um cuantificador lo faz perezoso. Por exemplo, .* coincide com a cadena mais larga possível, enquanto que .*? coincide com a mais corta.

É o regex igual em todos os lenguajes de programação?

No, as implementações de regex variam segundo o lenguaje. A maioria soporta a sintaxe POSIX básica, mas as características avanzadas como lookbehind, grupos nombrados e soporte Unicode difieren. JavaScript historicamente tenia soporte limitado de regex mas ha adicionado muitas características nos últimos anhos.

Pode o regex analizar HTML o XML?

No, o regex no pode analizar HTML o XML de maneira confiável porque são lenguajes libres de contexto anidados. O regex no tem concepto de profundidade de anidamiento o tags balanceadas. Usa um analizador HTML o XML adequado. O regex pode extrair patrones simples de HTML mas fallará em estruturas complejas.

Que são lookahead e lookbehind em regex?

<=pattern) é lookbehind positivo, coincide se o patrón está atrás. As versiones negativas usam ! em vez de =.

Como fazer que uma expresão regular no distinga entre mayúsculas e minúsculas?

Adiciona o flag i depois do delimitador de cierre para fazer que todo o patrón seja insensível a mayúsculas. Em JavaScript, usa /pattern/i. Em Python, usa re.IGNORECASE o re.I como flag. Também podes usar (?i) online para fazer que partes específicas sejam insensíveis a mayúsculas.

ToolHub's collection of 300+ free online tools including regex tester, cheat sheets, and more — no sign-up required.