in

Perl | Función split () – GeeksforGeeks

gfg 200x200 min

separar() es una función de cadena en Perl que se usa para dividir o se puede decir para cortar una cuerda en secciones o pedazos más pequeños. Existen diferentes criterios para dividir una cadena, como en un solo carácter, un expresión regular(patrón), un grupo de caracteres o un valor indefinido, etc. Lo mejor de esta función es que el usuario puede especificar en cuántas secciones dividir la cadena.

Sintaxis:

split /Pattern/, Expression, Limit

or

split /Pattern/, Expression

or

split /Pattern/

or

Split

En la sintaxis anterior, Patrón se especifica una expresión regular que proporciona los criterios para dividir la cadena. los Expresión es la cuerda que se va a dividir. los Límite es una especie de restricción que detiene la división en el patrón (n-1) que se encuentra en la cadena.

Valor devuelto: Este método devuelve el valor en dos contextos como sigue:

En contexto de matriz: Aquí devuelve una lista de los campos que se encuentran en Expresión. Si no se especifica ninguna expresión, devuelve $ _.

En contexto escalar: Aquí devuelve el número de campos que se encontraron en Expresión y luego almacenó los campos en la matriz @_.

Existen diferentes caminos para usar la función split () de la siguiente manera:

  • Dividir en un personaje
  • Dividir entre una cadena sin límite
  • Dividir entre una cadena con límite
  • Dividir en un valor indefinido
  • Dividir en una expresión regular (patrón)
  • Dividiendo en Hash
  • División en el espacio

Dividir en un personaje

El usuario puede romper o dividir la cadena en diferentes caracteres como coma(,) barra invertida () etc. Este tipo de división se usa generalmente cuando tiene que analizar los datos de otro programa o archivo. No use split () para analizar el CSV (valor separado por comas) archivos. Si hay comas en sus datos, utilice Texto :: CSV en lugar de.

Ejemplo:

 

use strict;

use warnings;

 

my $str = 'Geeks, for, Geeks';

 

my @spl = split(', ', $str);

 

foreach my $i (@spl

{

    print "$i";

}

Dividir entre cadenas sin ningún límite

Esto también funciona igual que la división del personaje. Aquí los datos de la cadena están separados por dos !!.

Ejemplo:

 

use strict;

use warnings;

 

my $str = 'GFG!!Geeks!!55!!GeeksforGeeks';

 

my @spl = split('!!', $str);

 

foreach my $i (@spl

{

    print "$in";

}

Producción:
GFG
Geeks
55
GeeksforGeeks

División entre cadenas con límite

Esto también funciona igual que la división del personaje. Aquí los datos de la cadena están separados por dos !!. Aquí, el usuario puede restringir el número de secciones en las que se dividirá la cadena pasando el tercer argumento en la función de división, que será un valor entero positivo. En el siguiente ejemplo, el usuario pasa el Límite como 3 por lo que restringirá la división de la cadena en 3, incluso hay 4 apariciones de !! en la cuerda.

Ejemplo:

 

use strict;

use warnings;

 

my $str = 'GFG!!Geeks!!55!!GeeksforGeeks';

 

my @spl = split('!!', $str, 3);

 

foreach my $i (@spl

{

    print "$in";

}

Producción:
GFG
Geeks
55!!GeeksforGeeks

Dividir en un valor indefinido

Si el usuario intenta dividir en un valor indefinido, entonces la cadena se dividirá en cada carácter.

Ejemplo:

 

use strict;

use warnings;

 

my $str = 'GeeksforGeeks GFG';

 

my @spl = split(undef, $str);

 

foreach my $i (@spl

{

    print "$in";

}

Producción:

G
e
e
k
s
f
o
r
G
e
e
k
s
 
G
F
G

Error de tiempo de ejecución:

Uso de valor no inicializado en la compilación de expresiones regulares en /home/38ececda726bcb7e68fb7b41eee5b8d9.pl línea 12.

Dividir en un patrón o una expresión regular

A veces, el usuario puede querer dividir la cadena en un patrón (regex) o un tipo particular de carácter. Aquí usaremos las clases de caracteres especiales para hacer un patrón de dígitos (entero) de la siguiente manera:

Ejemplo:

 

use strict;

use warnings;

 

my $str = 'Geeks1for2Geeks';

 

my @spl = split(/d+/, $str);

 

foreach my $i (@spl

{

    print "$in";

}

Dividir en un hash

Un usuario puede dividir los datos o la cadena en el hash en lugar de una matriz. Básicamente, un hash es un par clave / valor. Antes de dividir, el usuario debe tener conocimientos sobre los hash.

Ejemplo:

 

use strict;

use warnings;

 

my $has = 'GFG=1;GEEKS=2;PROGEEK=3';

 

my %spl = split(/[=;]/, $has);

 

foreach my $i (keys %spl

{

    print "$i:$spl{$i}n";

}

Producción:
GFG:1
GEEKS:2
PROGEEK:3

División en el espacio

Aquí el espacio no significa solo » este espacio, pero también incluye la nueva línea, pestañas, etc.

Ejemplo:

 

use strict;

use warnings;

 

my $str = "ProGeeknnSudonPlacements";

 

my @spl = split(' ', $str);

 

foreach my $i (@spl)

{

    print "GFG${i}GFGn";

}

Producción:
GFGProGeekGFG
GFGSudoGFG
GFGPlacementsGFG

Puntos importantes para recordar

  • Como función split () también devuelve el valor en contexto escalar. Entonces, para almacenar los valores de retorno, el usuario debe definir algunos valores escalares de acuerdo con el número de secciones de división. En el siguiente ejemplo, habrá 4 valores después de la división, por lo que aquí el usuario definirá los 4 valores escalares y almacenará los valores de retorno.

    Ejemplo:

     

    use strict;

    use warnings;

     

    my $str = 'GFG!Sudo!GeeksforGeeks!ProGeek';

     

    my ($sc1, $sc2, $sc3, $sc4) = split('!', $str);

     

    print "$sc1n$sc2n$sc3n$sc4";

    Producción:
    GFG
    Sudo
    GeeksforGeeks
    ProGeek
    
  • Puede haber una situación en la que el usuario no pase una cadena para dividir, luego, por defecto, la función split () usará la PS y si el usuario no pasa una Expresión, es decir, la cadena para dividir, usará ‘ ‘(un espacio).

    Ejemplo:

     

    use strict;

    use warnings;

     

    foreach ('G F G', 'Geeks for Geeks')

    {

        

        my @spl = split;

         

        

        print "Split $_:n";

         

        foreach my $i (@spl)

        {

            print " $in";

        }

    }

    Producción:
    Split G F G:
     G
     F
     G
    Split Geeks for Geeks:
     Geeks
     for
     Geeks
    
  • Si el delimitador está presente al comienzo de la cadena que se va a dividir, el primer elemento de los valores devueltos estará vacío y se almacenará en la matriz. En el siguiente ejemplo, tenemos esta situación y estamos imprimiendo el valor vacío de la matriz resultante:

    Ejemplo:

     

    use strict;

    use warnings;

     

    my $str = ', GFG, Geeks';

     

    my @spl = split(', ', $str);

     

    foreach my $i (@spl

    {

        print "Array_Element: $in";

    }

    Producción:
    Array_Element: 
    Array_Element: GFG
    Array_Element: Geeks
    
  • Si quieres para mantener el delimitador en el resultado, simplemente coloque ese delimitador entre paréntesis.

    Ejemplo:

     

    use strict;

    use warnings;

     

    my $str = 'Geeks1for2Geeks';

     

    my @spl = split(/(d+)/, $str);

     

    foreach my $i (@spl

    {

        print "$in";

    }

    Producción:
    Geeks
    1
    for
    2
    Geeks
    

Deja una respuesta

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

apple touch icon@2

escape – ¿Qué caracteres necesito para escapar en documentos XML?

edit

Chelsea vs Manchester United – Diferencia y comparación