La expresión regular (expresión regular) describe un patrón de coincidencia de cadenas, que se puede utilizar para verificar si una cadena contiene una determinada subcadena, reemplazar la subcadena coincidente o extraer una subcadena que cumpla una determinada condición de una determinada cadena en espera.
La función de expresión regular del lenguaje Perl es muy poderosa, básicamente la más poderosa entre los lenguajes de uso común. Muchos lenguajes hacen referencia a las expresiones regulares de Perl al diseñar el soporte de expresiones regulares.
Las tres formas de expresiones regulares de Perl son coincidencia, reemplazo y transformación:
Partido: m/
Reemplazo: s/
Conversión: tr/
Estas tres formas se usan generalmente con =~ o !~ , =~ significa coincidencia, !~ significa no coincidir.
El operador de coincidencia m// se utiliza para hacer coincidir una declaración de cadena o una expresión regular. Por ejemplo, para hacer coincidir "ejecutar" en la barra $ escalar, el código es el siguiente:
Al ejecutar el programa anterior, el resultado de salida es:
Primer partido Segundo partido
La coincidencia de patrones tiene algunos modificadores de uso común, como se muestra en la siguiente tabla:
| modificador | describir |
|---|---|
| i | Ignorar mayúsculas y minúsculas en el patrón |
| metro | modo multilínea |
| oh | Asignar valor solo una vez |
| s | Modo de línea única, "." coincide con "n" (el valor predeterminado no coincide) |
| incógnita | Ignorar espacios en blanco en el patrón |
| gramo | partido global |
| cg | Después de que falla la coincidencia global, se permite buscar nuevamente la cadena coincidente. |
Después de procesar Perl, habrá tres nombres de variables especiales para los valores coincidentes:
$`: La parte anterior de la cadena coincidente
$&: cadena coincidente
$': Aún no quedan cadenas coincidentes
Si junta estas tres variables, obtendrá la cadena original.
Los ejemplos son los siguientes:
El resultado de salida de ejecutar el programa anterior es:
Cadena antes de la coincidencia: bienvenido a Cadena antes de la coincidencia: ejecute Cadena después de la coincidencia: sitio oob.
El operador de reemplazo s/// es una extensión del operador coincidente y reemplaza la cadena especificada con una nueva cadena. El formato básico es el siguiente:
s/PATRÓN/REEMPLAZO/;
PATTERN es el patrón coincidente, REPLACEMENT es la cadena de reemplazo.
Por ejemplo, reemplazamos "google" en la siguiente cadena por "codercto":
El resultado de salida de ejecutar el programa anterior es:
Bienvenido al sitio de codercto.
Los modificadores de la operación de reemplazo se muestran en la siguiente tabla:
| modificador | describir |
|---|---|
| i | Si se agrega "i" al modificador, la expresión regular cancelará la distinción entre mayúsculas y minúsculas, es decir, "a" y "A" son iguales. |
| metro | El inicio y el final "$" regulares predeterminados son solo para cadenas regulares. Si se agrega "m" al modificador, entonces el inicio y el final se referirán a cada línea de la cadena: el comienzo de cada línea es "^. ", Termina con "$". |
| oh | La expresión se ejecuta sólo una vez. |
| s | Si se agrega "s" al modificador, el "." predeterminado que representa cualquier carácter que no sea un carácter de nueva línea se convertirá en cualquier carácter, ¡incluidos los caracteres de nueva línea! |
| incógnita | Si se agrega este modificador, los espacios en blanco de la expresión se ignorarán a menos que se hayan escapado. |
| gramo | Reemplace todas las cadenas coincidentes. |
| mi | Reemplazar cadena como expresión |
Los siguientes son los modificadores relacionados con el operador de conversión:
| modificador | describir |
|---|---|
| do | Convertir todos los caracteres no especificados |
| d | Eliminar todos los caracteres especificados |
| s | Condensar varios caracteres de salida idénticos en uno |
El siguiente ejemplo convierte todas las letras minúsculas de la variable $string a letras mayúsculas:
#!/usr/bin/perl $string = 'bienvenido al sitio codercto.';$string =~ tr/az/Az/;print "$stringn";
El resultado de salida de ejecutar el programa anterior es:
BIENVENIDO AL SITIO DE CODERCTO.
El siguiente ejemplo utiliza /s para eliminar caracteres repetidos de la variable $string:
El resultado de salida de ejecutar el programa anterior es:
runob
Más ejemplos:
$string =~ tr/d/ /c # Reemplazar todos los caracteres no numéricos con espacios $string =~ tr/t //d # Eliminar tabulaciones y espacios $string =~ tr/0-9/ /cs; # Reemplazar otros caracteres entre números con un espacio.
| expresión | describir |
|---|---|
| . | Coincide con todos los caracteres excepto los de nueva línea |
| ¿incógnita? | Coincidir x cadena 0 o una vez |
| incógnita* | Haga coincidir x cadena 0 o más veces, pero haga coincidir el mínimo número de veces posible |
| x+ | Haga coincidir x cadena 1 o más veces, pero haga coincidir el mínimo número de veces posible |
| .* | Coincide con cualquier personaje 0 o más veces |
| .+ | Combina cualquier personaje 1 o más veces |
| {metro} | Coincide exactamente con m cadenas especificadas |
| {Minnesota} | Coincide con más de my menos de n cadenas especificadas |
| {metro,} | Coincidir con m o más cadenas especificadas |
| [] | Coincide con caracteres dentro de [] |
| [^] | Coincide con caracteres que no coinciden con [] |
| [0-9] | Coincide con todos los caracteres numéricos |
| [Arizona] | Coincide con todos los caracteres alfabéticos en minúscula |
| [^0-9] | Coincide con todos los caracteres no numéricos |
| [^az] | Coincide con todos los caracteres alfabéticos que no sean minúsculas |
| ^ | Coincide con caracteres que comienzan con |
| $ | Coincide con el personaje al final del personaje. |
| d | Coincide con un carácter numérico, la misma sintaxis que [0-9] |
| d+ | Coincide con varias cadenas numéricas, la misma sintaxis que [0-9]+ |
| D | No numérico, igual que los demásd |
| D+ | No numérico, igual que d+ para otros |
| w | Una cadena de letras o números en inglés, la misma sintaxis que [a-zA-Z0-9_] |
| w+ | Misma sintaxis que [a-zA-Z0-9_]+ |
| W | Una cadena de letras o números que no están en inglés, la misma sintaxis que [^a-zA-Z0-9_] |
| W+ | Misma sintaxis que [^a-zA-Z0-9_]+ |
| s | Espacio, misma sintaxis que [ntrf] |
| s+ | Igual que [ntrf]+ |
| S | Sin espacio, misma sintaxis que [^ntrf] |
| S+ | Misma sintaxis que [^ntrf]+ |
| b | Coincide con cadenas delimitadas por letras y números en inglés. |
| B | Coincide con cadenas que no están delimitadas por letras inglesas o valores numéricos |
| a|b|c | Coincide con cadenas que coinciden con un carácter, un carácter b o un carácter c |
| abecedario | Haga coincidir la cadena (patrón) que contiene abc (). Este símbolo recordará la cadena encontrada, que es una sintaxis muy práctica. La cadena que se encuentra en el primer () se convierte en la variable $1 o 1, la cadena que se encuentra en el segundo (). se convierte en la variable $2 o la variable 2, y así sucesivamente. |
| /patrón/i | i Este parámetro indica que se ignoran las mayúsculas y minúsculas en inglés, es decir, al hacer coincidir cadenas, no se considera el problema de las mayúsculas y minúsculas en inglés. Si desea encontrar un carácter especial en el modo de patrón, como "*", debe agregarlo antes de este carácter Utilice el símbolo para invalidar caracteres especiales. |