Regex o expresiones regulares son una parte importante de la programación de Perl . Se utiliza para buscar el patrón de texto especificado. En esto, un conjunto de caracteres juntos forman el patrón de búsqueda. También se conoce como expresión regular . Trabajar con expresiones regulares puede volverse complejo con más y más funciones adicionales. Para reducir la complejidad, Perl nos proporciona más operaciones como Alternancia y Agrupación.
Alternancia
El nombre en sí sugiere el mecanismo que hace, en primer lugar, es como un operador (&&) que aparece en el lenguaje de programación ‘C’. El operador ‘&&’ en C funciona hasta que encuentra que todas las declaraciones condicionales son verdaderas, no devolverá 1 y devuelve 0 tan pronto como encuentre una declaración falsa. La alternancia en Perl funciona en ambos sentidos simultáneamente. La alternancia se puede hacer usando los metacaracteres ‘|’ o ‘[]’. Los siguientes ejemplos aclararán las cosas:
Ejemplo 1:
perl
#!/usr/bin/perl # Initializing the string and checking it # against few search patterns my $str = "geeksforgeeks rocks..."; # prints 1 due to no match (=0) print "1\n" if (($str =~ /gek|for/) == 0); # for word search if($str =~ /geek|for/) { print "I found $&.\n"; } else { print "no match" }
1 I found geek.
Entonces, en el ejemplo anterior, primero busca ‘geek’ y encuentra una coincidencia en el primer patrón alternativo, devuelve 1 tan pronto como encuentra una coincidencia. Pero también verifica ‘para’ y si no está presente en la string, no se molestará, ya que ya devolvió el estado de coincidencia. Si ‘for’ es una coincidencia, verifica si ‘for’ aparece en la posición más baja de la string, ya que ‘g’ en ‘geeks’ aparece en la posición 0 y ‘f’ en ‘for’ aparece en la posición 5, ‘geek ‘ se almacena en el último patrón de coincidencia. Mira el siguiente ejemplo:
$& - Contains the string matched by the last pattern match.
Ejemplo 2:
perl
#!/usr/bin/perl # Initializing the string and checking it # against few search patterns my $str = "geeksforgeeks rocks..."; print "1\n" if ($str =~ /for|eeks|rock|ge/); # | for word search if($str =~ /for|eeks|rock|ge/) { print "I found $&.\n"; } # for single character search if ($str =~ /[gfrkc]/) { print "$&" }
1 I found ge. g
Agrupamiento
La agrupación se utiliza para buscar un patrón acotado con palabras o patrones similares, al principio, al final o en el medio y también devuelve el patrón menos posicionado. La agrupación se realiza mediante el metacarácter ‘()’. El siguiente es un ejemplo que aclarará las cosas:
Ejemplo 1:
perl
#!/usr/bin/perl # Initializing the string and checking it # against few search patterns my $str = "Blackbackground Brownbackground"; print "1\n" if ($str =~ /(Bron|Back)[a-z]+/); if ($str =~ /(Brown|Black)[a-z]+/) { print "I found $&.\n"; } else { print "no match" }
I found Blackbackground.
Para una mejor comprensión mira el siguiente ejemplo:
perl
#!/usr/bin/perl use warnings; use strict; # Initializing the string and checking it # against few searching patterns # array of strings my @mail = ('Ab-@gmail.com', 'd.f@yahoo.com', '0b_f@bing.com', 'jet@hotmail.con', 's/s@otmail.com'); for(@mail) { # search pattern to check valid mail # service providers followed with '.com' print "Valid : $_\n" if($_ =~ /[a-zA-Z0-9-._]+@(gmail|yahoo|bing|hotmail)(.com)$/) }
Valid : Ab-@gmail.com Valid : d.f@yahoo.com Valid : 0b_f@bing.com