¿Qué es un regex (expresión regular)?

Abreviatura de la expresión regular, una expresión regular es una cadena de texto que le permite crear patrones que ayudan a hacer coincidir, localizar y administrar texto. Perl es un gran ejemplo de un lenguaje de programación que utiliza expresiones regulares. Sin embargo, es solo uno de los muchos lugares donde puedes encontrar expresiones regulares. Las expresiones regulares también se pueden usar desde la línea de comandos y en los editores de texto para encontrar texto dentro de un archivo.

Cuando se intenta entender expresiones regulares por primera vez, parece como si fuera un lenguaje diferente. Sin embargo, dominar las expresiones regulares puede ahorrarle miles de horas si trabaja con texto o necesita analizar grandes cantidades de datos. A continuación se muestra un ejemplo de una expresión regular con cada uno de sus componentes etiquetados. Esta expresión regular también se muestra en los ejemplos de programación de Perl que se muestran más adelante en esta página.

Los fundamentos de las expresiones regulares (hoja de trucos)

Mirar el ejemplo anterior puede ser abrumador. Sin embargo, una vez que entienda la sintaxis básica de cómo funcionan los comandos de expresiones regulares, puede leer el ejemplo anterior como si estuviera leyendo esta oración. Desafortunadamente, no todos los programas, comandos y lenguajes de programación usan las mismas expresiones regulares, pero todos comparten similitudes.

Personaje¿Qué hace?EjemploPartidos
^Partidos de principio de linea^ abcabc, abcdef .., abc123
PSPartidos fin de líneaabc $mi: abc, 123abc, theabc
.Coincide con cualquier personajeC.Aabc, asg, a2c
|O operadorabc | xyzabc o xyz
(...)Captura cualquier cosa que coincida(a B C)Captura 'a' y 'c'
(?: ...)Grupo que no captura(a B C)Captura 'a' pero solo grupos 'c'
[...]Coincide con cualquier cosa contenida entre paréntesis[a B C]a, b, o c
[^ ...]Coincide con cualquier cosa que no esté entre corchetes[^ abc]xyz, 123, 1de
[Arizona]Coincide con cualquier carácter entre 'a' y 'z'[bz]bc, mente, xyz
{X}La cantidad exacta de 'x' de veces para emparejar(abc) {2}abcabc
{X, }Iguala la cantidad de veces 'x' o más(abc) {2, }abcabc, abcabcabc
{x, y}Coincidir entre 'x' y 'y' veces.(a) {2, 4}aa, aaa, aaaaa
*Partido codicioso que coincide con todo en lugar de la *a B Cabc, abbcc, abcdc
+Coincide con el carácter antes de + una o más vecesa + cac, aac, aaac,
?Coincide con el personaje antes de la? cero o una vez Además, se utiliza como un partido no codiciosoa B Cac, abc
\Escapa del personaje después de la barra invertida o crea una secuencia de escape.a \ scC.A

Personajes de escape (secuencia de escape)

Nota: los caracteres de escape distinguen entre mayúsculas y minúsculas.

Personaje¿Qué hace?
\Cualquier personaje que no se mencione a continuación precedido por un \ será escapado. Por ejemplo, \. coincide con un período y no realiza la función mencionada anteriormente. Los caracteres que deben escaparse son () [] {} ^ $. | * +? \
\ 0Carácter nulo
\unaHaga coincidir una campana o alarma.
\segundoLímite de palabra en la mayoría o retroceso
\SEGUNDONo límite de palabra
\reEmpareja cualquier dígito decimal (0-9)
\REEmpareja cualquier no dígito
\miUnir un escape
\FUnir un feed de formulario
\norteCoincidir con una nueva línea
\ Q ... \ EIgnora cualquier significado especial en lo que se compara.
\ rCoincidir con un retorno de carro
\ sCoincide con un carácter de espacio (espacio, \ t, \ r, \ n)
\ SCoincide con cualquier carácter de espacio no blanco
\ tHaz coincidir una pestaña
\ vCoincidir con una pestaña vertical
\ wCoincide con cualquier carácter de palabra [a-zA-Z_0-9]
\ WCoincide con cualquier carácter que no sea palabra

Banderas de expresión regular

Fuera de la expresión regular (al final), se pueden usar indicadores para ayudar con la coincidencia de patrones.

Personaje¿Qué hace?
yoIgnorar el caso (mayúsculas y minúsculas permitidas)
metroPartido multilínea
sUnir nuevas lineas
XPermitir espacios y comentarios.
JSe permiten nombres de grupo duplicados
UPartido ungreedy

Perl lenguaje de programación ejemplos de expresiones regulares

A continuación se muestran algunos ejemplos de expresiones regulares y coincidencia de patrones en Perl. Muchos de estos ejemplos son similares o similares a otros lenguajes de programación y programas que admiten expresiones regulares.

 $ data = ~ s / bad data / good data / i; 

El ejemplo anterior reemplaza cualquier "información errónea" por "buena información" utilizando una coincidencia que no distingue entre mayúsculas y minúsculas. Entonces, si la variable $ data fuera "Aquí hay datos malos", se convertiría en "Aquí hay datos buenos".

 $ datos = ~ s / a / A /; 

Este ejemplo reemplaza cualquier a minúscula con una A mayúscula. Por lo tanto, si $ data fuera "ejemplo", se convertiría en "ejemplo".

 $ datos = ~ s / [az] / * /; 

El ejemplo anterior reemplaza cualquier letra minúscula, de la A a la Z, con un asterisco. Entonces, si $ data fuera "Ejemplo" se convertiría en "E ******".

 $ datos = ~ s / e $ / es /; 

Este ejemplo utiliza el carácter $, que le dice a la expresión regular que coincida con el texto anterior al final de la cadena. Entonces, si $ data fuera "ejemplo" se convertiría en "ejemplos".

 $ data = ~ s /\./!/; 

En el ejemplo anterior, estamos reemplazando un punto con un signo de exclamación. Debido a que el período es un meta-carácter, si solo ingresó un período sin el \ (escape) se trata como cualquier carácter. En este ejemplo, si $ data fueran "ejemplo". se convertiría en "¡ejemplo!", sin embargo, si no tuvieras el escape, reemplazaría a todos los personajes y se convertiría en "!!!!!!!!"

 $ datos = ~ s / ^ e / E /; 

Finalmente, en este ejemplo anterior, el símbolo de intercalación (^) le dice a la expresión regular que coincida con cualquier cosa al principio de la línea. En este ejemplo, esto coincidiría con cualquier letra minúscula e al principio de la línea y la reemplazaría con una E mayúscula. Por lo tanto, si $ data fuera "ejemplo" se convertiría en "Ejemplo".

Sugerencia: si desea explorar expresiones regulares aún más en comandos como grep o expresiones regulares en el lenguaje de programación, consulte el libro de O'Reilly "Cómo dominar las expresiones regulares".

Siglas de computadora, Secuencia de escape, Expresión, Globo, Metatacaracteres, Términos de programación, Tilde, Comodín