Skip to main content

Expresiones regulares

Una expresión regular es una secuencia especial de caracteres que le ayuda a encontrar o hacer coincidir otras cadenas o conjuntos de cadenas, utilizando una sintaxis especializada contenida en un patrón.

Ejemplos de expresiones regulares (Regex)

Un ejemplo sencillo de expresión regular es una cadena (literal). Por ejemplo, la expresión regular Hola Mundo coincide con la cadena "Hola Mundo". . (punto) es otro ejemplo de expresión regular. Un punto coincide con cualquier carácter; por ejemplo, coincidiría con "a" o "1".

Las siguientes tablas enumeran varias expresiones regulares y describen el patrón con el que coincidirían.

 

Regex Coincidencias

this is text

Coincide exactamente con "this is text"

this\s+is\s+text

Coincide con la palabra "this" seguida de uno o más espacios en blanco, seguida de la palabra "is", seguida de uno o más espacios, y luego "text"

^\d+(\.\d+)?

^ indica que el patrón debe comenzar al inicio de una nueva línea. \d+ coincide con uno o más dígitos. El ? hace que la parte entre paréntesis sea opcional. \. coincide con un punto. Los paréntesis se usan para agrupar. Coincide, por ejemplo, con "5", "1.5" y "2.21".

 

 

Símbolos comunes de coincidencia

Expresión Regular Descripción

.

Coincide con cualquier carácter

^regex

Encuentra una expresión regular que debe coincidir al comienzo de la línea

regex$

Encuentra una expresión regular que debe coincidir al final de la línea

[abc]

Definición de conjunto: puede coincidir con la letra a, b o c

[abc][vz]

Definición de conjunto: puede coincidir con a, b o c seguido de v o z

[^abc]

Cuando el acento circunflejo ^ aparece como primer carácter dentro de corchetes, niega el patrón. Coincide con cualquier carácter excepto a, b o c

[a-d1-7]

Rangos: coincide con una letra entre a y d y cifras del 1 al 7, pero no con d1

X|Z

Encuentra X o Z

XZ

Encuentra X seguida directamente por Z

$

Verifica si hay un final de línea a continuación

 

 

Metacaracteres

Los siguientes metacaracteres tienen un significado predefinido y hacen que ciertos patrones comunes sean más fáciles de usar, por ejemplo, \d en lugar de [0..9].

Expresión Regular Descripción

\d

Cualquier dígito, abreviatura de [0-9]

\D

Un carácter que no es un dígito, abreviatura de [^0-9]

\s

Un carácter de espacio en blanco, abreviatura de [ \t\n\x0b\r\f]

\S

Un carácter que no es espacio en blanco, abreviatura

\w

Un carácter de palabra, abreviatura de [a-zA-Z_0-9]

\W

Un carácter que no es de palabra, abreviatura de [^\w]

\S+

Varios caracteres que no son espacios en blanco

\b

Coincide con un límite de palabra, donde un carácter de palabra es [a-zA-Z0-9_]

Estos metacaracteres tienen la misma letra inicial que lo que representan, por ejemplo: dígito, espacio, palabra y límite.
Los símbolos en mayúscula representan lo opuesto.

 

Cuantificador

Un cuantificador define con qué frecuencia puede aparecer un elemento. Los símbolos ?, *, + y {} determinan la cantidad en las expresiones regulares

Expresión Regular Descripción Ejemplo

*

Ocurre cero o más veces, es una abreviatura de {0,}

X* encuentra ninguna o varias letras X, <sbr /> .* encuentra cualquier secuencia de caracteres

+

Ocurre una o más veces, es una abreviatura de {1,}

X+- encuentra una o varias letras X

?

Ocurre cero o una vez, ? es una abreviatura de {0,1}.

X? encuentra ninguna o exactamente una letra X

{X}

Ocurre X veces, los {} indican la cantidad del elemento anterior

\d{3} busca tres dígitos, .{10} busca una secuencia de cualquier carácter de longitud 10

{X,Y}

Ocurre entre X e Y veces

\d{1,4} significa que \d debe aparecer al menos una vez y como máximo cuatro veces

*?

? después de un cuantificador lo convierte en cuantificador reacio (reluctant quantifier). Trata de encontrar la coincidencia más pequeña posible. Esto hace que la expresión regular se detenga en la primera coincidencia.

 
 

Anticipación negativa (Negative Lookahead)

La anticipación negativa permite excluir un patrón. Con esto puedes indicar que una cadena no debe ser seguida por otra cadena. La anticipación negativa se define con (?!patrón). Por ejemplo, lo siguiente coincidirá con "a" solo si no está seguida por "b":a(?!b)

Especificar modos dentro de la expresión regular

Puedes añadir modificadores de modo al inicio de la expresión regular. Para especificar múltiples modos, simplemente colócalos juntos, por ejemplo (?ismx).

  • (?i) hace que la expresión regular no distinga entre mayúsculas y minúsculas (insensible a mayúsculas).
  • (?s) activa el modo de línea única, haciendo que el punto (.) coincida con todos los caracteres, incluidos los saltos de línea.
  • (?m) activa el modo multilínea, haciendo que el símbolo de intercalación (^) y el de dólar ($) coincidan con el inicio y el final de cada línea dentro de la cadena.

Barras invertidas

La barra invertida \ es un carácter de escape. Esto significa que tiene un significado predefinido.
Para representar una sola barra invertida, debes usar doble barra invertida: \\.