perl | Agrupación y alternancia en Regex

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"
}
Producción: 

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 "$&"
}
Producción: 

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"
}
Producción: 

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)$/)
}
Producción: 

Valid : Ab-@gmail.com
Valid : d.f@yahoo.com
Valid : 0b_f@bing.com

 

Publicación traducida automáticamente

Artículo escrito por Tejashwi5 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *