Las expresiones regulares son una herramienta poderosa para la manipulación y búsqueda de texto. En Perl, las expresiones regulares son una parte integral del lenguaje y se utilizan ampliamente para tareas como la validación de datos, la búsqueda y reemplazo de texto, y la extracción de información.
Conceptos Clave
- Patrones Básicos: Los patrones son secuencias de caracteres que describen un conjunto de cadenas posibles.
- Metacaracteres: Caracteres especiales que tienen significados específicos en las expresiones regulares.
- Modificadores: Opciones que alteran el comportamiento de las expresiones regulares.
- Captura y Grupos: Técnicas para extraer partes específicas de una cadena.
Patrones Básicos
Ejemplo 1: Coincidencia Simple
Explicación:
=~
es el operador de coincidencia./Mundo/
es la expresión regular que busca la palabra "Mundo" en la cadena$text
.
Ejemplo 2: Coincidencia con Metacaracteres
Explicación:
\d
coincide con cualquier dígito.+
indica una o más repeticiones del carácter anterior.
Metacaracteres Comunes
Metacaracter | Descripción |
---|---|
. |
Cualquier carácter excepto nueva línea |
\d |
Cualquier dígito |
\w |
Cualquier carácter de palabra (letra, dígito, guion bajo) |
\s |
Cualquier espacio en blanco |
^ |
Inicio de la cadena |
$ |
Final de la cadena |
* |
Cero o más repeticiones |
+ |
Una o más repeticiones |
? |
Cero o una repetición |
` | ` |
() |
Agrupación |
[] |
Conjunto de caracteres |
Modificadores
Ejemplo 3: Modificador i
(Ignorar Mayúsculas/Minúsculas)
my $text = "Hola Mundo"; if ($text =~ /mundo/i) { print "¡Coincidencia encontrada sin importar mayúsculas/minúsculas!\n"; }
Explicación:
- El modificador
i
hace que la coincidencia no distinga entre mayúsculas y minúsculas.
Ejemplo 4: Modificador g
(Global)
Explicación:
- El modificador
g
busca todas las coincidencias en lugar de detenerse en la primera.
Captura y Grupos
Ejemplo 5: Captura de Subcadenas
my $text = "Nombre: Juan, Edad: 30"; if ($text =~ /Nombre: (\w+), Edad: (\d+)/) { my $nombre = $1; my $edad = $2; print "Nombre: $nombre, Edad: $edad\n"; }
Explicación:
(\w+)
y(\d+)
son grupos de captura que almacenan las coincidencias en$1
y$2
respectivamente.
Ejercicios Prácticos
Ejercicio 1: Validar una Dirección de Correo Electrónico
Instrucciones: Escribe una expresión regular que valide una dirección de correo electrónico.
Solución:
my $email = "[email protected]"; if ($email =~ /^[\w\.-]+@[\w\.-]+\.\w+$/) { print "Correo electrónico válido\n"; } else { print "Correo electrónico no válido\n"; }
Explicación:
^[\w\.-]+
coincide con uno o más caracteres de palabra, puntos o guiones al inicio.@
coincide con el símbolo arroba.[\w\.-]+
coincide con uno o más caracteres de palabra, puntos o guiones después del arroba.\.\w+$
coincide con un punto seguido de uno o más caracteres de palabra al final.
Ejercicio 2: Extraer Números de una Cadena
Instrucciones: Escribe un script que extraiga todos los números de una cadena dada.
Solución:
my $text = "El precio es 100 dólares y el descuento es 20 dólares"; my @numbers = ($text =~ /(\d+)/g); print "Números encontrados: @numbers\n";
Explicación:
(\d+)
captura uno o más dígitos.- El modificador
g
asegura que se capturen todas las coincidencias.
Conclusión
En esta sección, hemos cubierto los conceptos básicos de las expresiones regulares en Perl, incluyendo patrones simples, metacaracteres, modificadores y técnicas de captura. Las expresiones regulares son una herramienta esencial para cualquier programador de Perl, y dominar su uso puede facilitar enormemente la manipulación y análisis de texto.
En el próximo módulo, profundizaremos en el uso de referencias y estructuras de datos complejas en Perl. ¡Sigue practicando y nos vemos en la siguiente lección!
Curso de Programación en Perl
Módulo 1: Introducción a Perl
Módulo 2: Programación Básica en Perl
Módulo 3: Trabajando con Datos
Módulo 4: Programación Intermedia en Perl
Módulo 5: Programación Avanzada en Perl
- Expresiones Regulares Avanzadas
- Interacción con Bases de Datos usando DBI
- Programación Web con Perl
- Multithreading