Regex

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

Al intentar comprender las expresiones regulares por primera vez, parece que se trata de un idioma 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.

Expresión regular

Los conceptos básicos de las expresiones regulares (hoja de referencia)

Mirar el ejemplo anterior puede resultar abrumador. Sin embargo, una vez que comprenda la sintaxis básica de cómo operan los comandos de expresión regular, 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? Ejemplo Partidos
^ Coincide con el comienzo de la línea ^abc abc, abcdef .., abc123
$ Partidos fin de la línea abc$ mi: abc, 123abc, theabc
. Coincide con cualquier personaje C.A abc, asg, a2c
| Operador OR abc | xyz abc o xyz
(...) Capture cualquier cosa que coincida (a B C) Captura 'a' y 'c'
(?:...) Grupo no capturador (a B C) Captura 'a' pero solo grupos 'c'
[...] Coincide con todo lo contenido en soportes [abc] a, b o c
[^...] Coincide con todo lo que no esté entre corchetes [^abc] xyz, 123, 1de
[Arizona] Coincide con cualquier carácter entre 'a' y 'z' [b-z] antes de Cristo, mente, xyz
{x} La cantidad exacta 'x' de veces que debe coincidir (abc){2} abcabc
{x,} Coincide con 'x' cantidad de veces o más (abc){2,} abcabc, abcabcabc
{x,y} Coincidencia entre tiempos 'x' e 'y'. (a){2,4} aa, aaa, aaaaa
* Partido codicioso que coincide con todo en lugar del * a B C abc, abbcc, abcdc
+ Coincide con el personaje antes + una o más veces a + c ac, aac, aaac,
? Coincide con el personaje antes de? cero o una vez. Además, se utiliza como una coincidencia no codiciosa. a B C ac, abc
Escapa del personaje después de la barra invertida o crea una secuencia de escape . a sc una c

Caracteres de escape (secuencia de escape)

Nota

Los caracteres de escape distinguen entre mayúsculas y minúsculas.

Personaje ¿Qué hace?
Se escapará cualquier carácter que no se mencione a continuación y que esté precedido por . Por ejemplo, . coincide con un punto y no realiza la función mencionada anteriormente. Los caracteres que deben escaparse son () [] {} ^ $. | * +?
Carácter nulo.
a En Perl , a es una campana o alarma y no se usa en expresiones regulares.
A Coincide con el comienzo de una cadena de varias líneas.
 Límite de palabra en la mayoría o retroceso.
B Límite sin palabras.
D Coincide con cualquier dígito decimal (0-9).
D Coincide con cualquier dígito que no sea.
es Coincidir con un escape.
F Coincidir con un formulario de alimentación.
orte Coincidir con un nueva línea .
Q ... E Ignora cualquier significado especial en lo que se está emparejando.
r Coincidir con un retorno de carro.
s Coincide con un espacio carácter (espacio, t, r, n).
S Coincide con cualquier carácter de espacio en blanco.
t Coincidir con un pestaña.
v Coincidir con una pestaña vertical.
en Coincide con cualquier carácter de una palabra ([a-zA-Z_0-9]).
EN Coincide con cualquier carácter que no sea una palabra.

Indicadores de expresión regular

Fuera de la expresión regular (al final), las banderas ayudan con la coincidencia de patrones.

Personaje ¿Qué hace?
I Ignorar el caso ( mayúsculas y minúscula permitido).
metro Coincidencia de varias líneas.
s Coincidir con nuevas líneas.
x Permita espacios y comentarios.
J Se permiten nombres de grupos duplicados.
U Partido poco codicioso.

Ejemplos de expresiones regulares del lenguaje de programación Perl

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

|_+_|

El ejemplo anterior reemplaza cualquier 'dato incorrecto' con 'datos buenos' usando un no distingue entre mayúsculas y minúsculas partido. Entonces, si $ data variable fuera 'Aquí hay datos incorrectos', se convertiría en 'Aquí hay datos buenos'.

|_+_|

Este ejemplo reemplaza cualquier minúscula a con mayúsculas A . Entonces, si $ data fuera 'ejemplo', se convertiría en 'ejemplo'.

|_+_|

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 ******'.

|_+_|

Este ejemplo usa 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'.

|_+_|

En el ejemplo anterior, reemplazamos un período con un signo de exclamación . Debido a que el período es un metacarácter si solo ingresó un período sin ( escape ) se trata como cualquier personaje. En este ejemplo, si $ data fuera 'ejemplo'. se convertiría en 'ejemplo!', sin embargo, si no tuvieras el escape, reemplazaría todos los caracteres y se convertiría en '!!!!!!!!'

|_+_|

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

Consejo

Si desea explorar expresiones regulares aún más en comandos como sujeción , o expresiones regulares en el lenguaje de programación, consulte el libro de O'Reilly 'Dominar las expresiones regulares'.