Descargar PDF
La expresión regular es un grupo de caracteres o símbolos que se utiliza para encontrar un patrón específico de algún texto; se les puede llamar comodines con esteroides, si se quiere. Como desarrollador, el dominio de las expresiones regulares puede ser una poderosa herramienta para tener en su cinturón de herramientas, que sin duda va a tener que utilizar en sus programas en algún momento, buscar y reemplazar el uso de expresiones regulares en IDEs es muy útil a veces y me encuentro con ellos en la línea de comandos todos los días.
Diferentes aplicaciones y lenguajes de programación pueden tener diferentes implementaciones para las expresiones regulares, pero los conceptos subyacentes son en su mayoría los mismos. En este post, voy a explicar todo lo que necesitas saber sobre las expresiones regulares.
Una expresión regular es un patrón que se compara con una cadena de asunto de izquierda a derecha. La palabra «expresión regular» es un trabalenguas, normalmente encontrarás el término abreviado como «regex» o «regexp». La expresión regular se utiliza para reemplazar un texto dentro de una cadena, validar un formulario, extraer una subcadena de una cadena basada en una coincidencia de patrón, y mucho más.
Imagina que estás escribiendo una aplicación y quieres establecer las reglas para cuando un usuario elige su nombre de usuario. Queremos permitir que el nombre de usuario contenga letras, números, guiones bajos y guiones. También queremos limitar el número de caracteres en el nombre de usuario para que no se vea feo. Utilizamos la siguiente expresión regular para validar un nombre de usuario:
La expresión regular anterior puede aceptar las cadenas john_doe
, jo-hn_doe
y john12_as
. No coincide con Jo
porque esa cadena contiene letras mayúsculas y además es demasiado corta.
- Tabla de contenidos
- Coincidencias básicas
- Caracteres meta
- 2.1 Punto final
- 2.2 Conjunto de caracteres
- 2.2.1 Conjunto de caracteres negados
- 2.3 Repeticiones
- 2.3.1 La estrella
- 2.3.2 El Plus
- 2.3.3 El signo de interrogación
- 2.4 Tirantes
- 2.5 Grupo de caracteres
- 2.6 Alternancia
- 2.7 Escapar el carácter especial
- 2.8 Anclas
- 2.8.1 Caret
- 2.8.2 Dólar
- Conjuntos de caracteres abreviados
- Lookaround
- 4.1 Lookahead positivo
- 4.2 Lookahead negativo
- 4.3 Lookbehind positivo
- 4.4 Lookbehind negativo
- Banderas
- 5.1 Insensible a mayúsculas y minúsculas
- 5.2 Búsqueda global
- 5.3 Multilínea
- Comparación codiciosa vs perezosa
Tabla de contenidos
- Comparadores básicos
- Carácter meta
- Parada completa
- Conjunto de caracteres
- Conjunto de caracteres negados
- Repeticiones
- La Estrella
- El Plus
- El Signo de interrogación
- Rayas
- Grupo de caracteres
- Alternancia
- Caracteres especiales de escape
- Ancores
- Caret
- Dólar
- Conjuntos de caracteres abreviados
- Búsqueda
- Búsqueda positiva
- Búsqueda negativa
- Búsqueda positiva
- Bandas
- Insensible a las mayúsculas
- Búsqueda global
- Multilínea
- Coincidencia rápida vs. perezosa
Coincidencias básicas
Una expresión regular no es más que un patrón de caracteres que utilizamos para realizar
búsqueda en un texto. Por ejemplo, la expresión regular the
significa: la letrat
, seguida de la letra h
, seguida de la letra e
.
the => The fat cat sat on the mat.
Prueba la expresión regular
La expresión regular 123
coincide con la cadena 123
. La expresión regular se compara con una cadena de entrada comparando cada carácter de la expresión regular
con cada carácter de la cadena de entrada, uno tras otro. Las expresiones regulares
suelen distinguir entre mayúsculas y minúsculas, por lo que la expresión regular The
no coincidiría con la cadena the
.
The => The fat cat sat on the mat.
Prueba de la expresión regular
Caracteres meta
Los caracteres meta son los componentes de las expresiones regulares. Los meta
caracteres no se sostienen por sí mismos, sino que se interpretan de alguna
manera especial. Algunos metacaracteres tienen un significado especial y se escriben dentro de corchetes. Los metacaracteres son los siguientes:
2.1 Punto final
Punto final . es el ejemplo más sencillo de metacarácter. El carácter meta .
coincide con cualquier carácter simple. No coincide con los caracteres de retorno o de nueva línea.
Por ejemplo, la expresión regular .ar
significa: cualquier carácter, seguido de la letra a
, seguido de la letra r
.
.ar => The car parked in the garage.
Prueba la expresión regular
2.2 Conjunto de caracteres
Los conjuntos de caracteres también se denominan clase de caracteres. Los corchetes se utilizan para
especificar conjuntos de caracteres. Utilice un guión dentro de un conjunto de caracteres para especificar el rango de caracteres. El orden del rango de caracteres dentro de los corchetes
no importa. Por ejemplo, la expresión regular he
significa: una mayúscula T
o una minúscula t
, seguida de la letra h
, seguida de la letra e
.
he => The car parked in the garage.
Probar la expresión regular
Un punto dentro de un conjunto de caracteres, sin embargo, significa un punto literal. La expresión regular
ar
significa: un carácter minúsculo a
, seguido de la letra r
,
seguido de un carácter de punto .
.
ar => A garage is a good place to park a car.
Prueba la expresión regular
2.2.1 Conjunto de caracteres negados
En general, el símbolo del signo de intercalación representa el inicio de la cadena, pero cuando se
escribe después del corchete de apertura niega el conjunto de caracteres. Por
ejemplo, la expresión regular ar
significa: cualquier carácter excepto c
,
seguido del carácter a
, seguido de la letra r
.
ar => The car parked in the garage.
Prueba la expresión regular
2.3 Repeticiones
Los siguientes metacaracteres +
, *
o ?
se utilizan para especificar cuántas veces puede aparecer un subpatrón. Estos metacaracteres actúan de forma diferente en distintas
situaciones.
2.3.1 La estrella
El símbolo *
coincide con cero o más repeticiones del coincidente anterior. La expresión regular a*
significa: cero o más repeticiones del carácter minúsculo precedente a
. Pero si aparece después de un conjunto o clase de caracteres, entonces encuentra las repeticiones de todo el conjunto de caracteres. Por ejemplo, la expresión regular *
significa: cualquier número de letras minúsculas seguidas.
* => The car parked in the garage #21.
Prueba la expresión regular
El símbolo *
puede utilizarse con el metacarácter . para coincidir con cualquier cadena de
caracteres .*
. El símbolo *
puede utilizarse con el carácter de espacio en blanco \s
para coincidir con una cadena de caracteres de espacio en blanco. Por ejemplo, la expresión\s*cat\s*
significa: cero o más espacios, seguidos del carácter minúsculo c
,
seguido del carácter minúsculo a
, seguido del carácter minúsculo t
, seguido de cero o más espacios.
\s*cat\s* => The fat cat sat on the concatenation.
Prueba la expresión regular
2.3.2 El Plus
El símbolo +
coincide con una o más repeticiones del carácter precedente. Por ejemplo, la expresión regular c.+t
significa: letra minúscula c
, seguida de al menos un carácter, seguido del carácter minúsculo t
. Hay que aclarar que t
es el último t
de la frase.
c.+t => The fat cat sat on the mat.
Prueba la expresión regular
2.3.3 El signo de interrogación
En la expresión regular el metacarácter ?
hace que el carácter precedente
sea opcional. Este símbolo coincide con cero o una instancia del carácter precedente. Por ejemplo, la expresión regular ?he
significa: Opcional la letra mayúscula T
, seguida del carácter minúsculo h
, seguido del carácter minúsculo e
.
he => The car is parked in the garage.
Prueba la expresión regular
?he => The car is parked in the garage.
Prueba la expresión regular
2.4 Tirantes
En la expresión regular los tirantes que también se llaman cuantificadores se utilizan para
especificar el número de veces que se puede
repetir un carácter o un grupo de caracteres. Por ejemplo, la expresión regular {2,3}
significa: Coincidir con al menos 2 dígitos pero no más de 3 ( caracteres en el rango de 0 a 9).
{2,3} => The number was 9.9997 but we rounded it off to 10.0.
Probar la expresión regular
Podemos omitir el segundo número. Por ejemplo, la expresión regular{2,}
significa: Coincidir con 2 o más dígitos. Si además eliminamos la coma la expresión regular
{3}
significa: Coincidir exactamente con 3 dígitos.
{2,} => The number was 9.9997 but we rounded it off to 10.0.
Prueba la expresión regular
{3} => The number was 9.9997 but we rounded it off to 10.0.
Prueba la expresión regular
2.5 Grupo de caracteres
El grupo de caracteres es un grupo de sub-patrones que se escribe dentro de paréntesis (…)
. Como hemos dicho antes, si ponemos un cuantificador después de un carácter, se repetirá el carácter anterior. Pero si ponemos el cuantificador después de un grupo de caracteres entonces se repite todo el grupo de caracteres. Por ejemplo, la expresión regular (ab)*
coincide con cero o más repeticiones del carácter ab
. También podemos utilizar la alternancia |
meta carácter dentro del grupo de caracteres. Por ejemplo, la expresión regular (c|g|p)ar
significa: carácter minúsculo c
, g
o p
, seguido del carácter a
, seguido del carácter r
.
(c|g|p)ar => The car is parked in the garage.
Probar la expresión regular
2.6 Alternancia
En la expresión regular se utiliza la barra vertical |
para definir la alternancia. La alternancia es como una condición entre varias expresiones. Ahora, usted puede estar pensando que el conjunto de caracteres y la alternancia funcionan de la misma manera. Pero la gran diferencia entre el conjunto de caracteres y la alternancia es que el conjunto de caracteres funciona a nivel de caracteres, pero la alternancia funciona a nivel de expresiones. Por ejemplo, la expresión regular (T|t)he|car
significa: carácter mayúsculo T
o minúsculo t
, seguido del carácter minúsculo h
, seguido del carácter minúsculo e
o del carácter minúsculo c
, seguido del carácter minúsculo a
, seguido del carácter minúsculo r
.
(T|t)he|car => The car is parked in the garage.
Probar la expresión regular
2.7 Escapar el carácter especial
La barra invertida \
se utiliza en la expresión regular para escapar el siguiente carácter. Esto
nos permite especificar un símbolo como carácter coincidente, incluidos los caracteres reservados
{ } / \ + * . $ ^ | ?
. Para utilizar un carácter especial como carácter coincidente, anteponga
Por ejemplo, la expresión regular . se utiliza para coincidir con cualquier carácter excepto
newline. Ahora, para que coincida con . en una cadena de entrada, la expresión regular (f|c|m)at\.?
significa: letra minúscula f
, c
o m
seguida del carácter minúsculo
a
, seguido de la letra minúscula t
, seguido del carácter opcional .
.
(f|c|m)at\.? => The fat cat sat on the mat.
Prueba la expresión regular
2.8 Anclas
En las expresiones regulares, utilizamos anclas para comprobar si el símbolo coincidente es el
símbolo inicial o el símbolo final de la cadena de entrada. Las anclas son de dos tipos: El primer tipo es Caret ^
que comprueba si el carácter coincidente es el comienzo
de la entrada y el segundo tipo es Dollar $
que comprueba si el carácter coincidente
es el último carácter de la cadena de entrada.
2.8.1 Caret
El símbolo Caret ^
se utiliza para comprobar si el carácter coincidente es el primer carácter
de la cadena de entrada. Si aplicamos la siguiente expresión regular ^a
(si a es
el símbolo inicial) a la cadena de entrada abc
coincide con a
. Pero si aplicamos la expresión regular ^b
a la cadena de entrada anterior no coincide con nada. Porque en la cadena de entrada abc
b
no es el símbolo inicial. Echemos un vistazo a otra expresión regular ^(T|t)he
que significa: el carácter en mayúscula T
o el carácter en minúscula t
es el símbolo de inicio de la cadena de entrada, seguido por
el carácter en minúscula h
, seguido por el carácter en minúscula e
.
(T|t)he => The car is parked in the garage.
Prueba de la expresión regular
^(T|t)he => The car is parked in the garage.
Prueba de la expresión regular
2.8.2 Dólar
El símbolo del dólar $
se utiliza para comprobar si el carácter coincidente es el último carácter
de la cadena de entrada. Por ejemplo, la expresión regular (at\.)$
significa: un carácter minúsculo a
, seguido de un carácter minúsculo t
, seguido de un carácter .
y el coincidente debe ser el final de la cadena.
(at\.) => The fat cat. sat. on the mat.
Prueba de la expresión regular
(at\.)$ => The fat cat. sat. on the mat.
Prueba de la expresión regular
Conjuntos de caracteres abreviados
La expresión regular proporciona abreviaturas para los conjuntos de caracteres de uso común, que ofrecen abreviaturas convenientes para las expresiones regulares de uso común. Los conjuntos de caracteres abreviados son los siguientes: