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 |
|
Encuentra una expresión regular que debe coincidir al comienzo de la línea |
|
Encuentra una expresión regular que debe coincidir al final de la línea |
|
Definición de conjunto: puede coincidir con la letra a, b o c |
|
Definición de conjunto: puede coincidir con a, b o c seguido de v o z |
|
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 |
|
Rangos: coincide con una letra entre a y d y cifras del 1 al 7, pero no con d1 |
|
Encuentra X o Z |
|
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 |
---|---|
|
Cualquier dígito, abreviatura de |
|
Un carácter que no es un dígito, abreviatura de |
|
Un carácter de espacio en blanco, abreviatura de |
|
Un carácter que no es espacio en blanco, abreviatura |
|
Un carácter de palabra, abreviatura de |
|
Un carácter que no es de palabra, abreviatura de |
|
Varios caracteres que no son espacios en blanco |
|
Coincide con un límite de palabra, donde un carácter de palabra es |
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 |
|
|
Ocurre una o más veces, es una abreviatura de |
|
|
Ocurre cero o una vez, ? es una abreviatura de |
|
|
Ocurre X veces, los |
|
|
Ocurre entre X e Y veces |
|
|
|
|
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: \\.