about_Split

Se aplica a: Windows PowerShell 2.0, Windows PowerShell 3.0, Windows PowerShell 4.0, Windows PowerShell 5.0

TEMA

about_Split

DESCRIPCIÓN BREVE

Explica cómo utilizar el operador Split para dividir una o varias cadenas en subcadenas.

DESCRIPCIÓN LARGA

El operador Split divide una o varias cadenas en subcadenas. Puede cambiar los siguientes elementos de la operación Split:

  • -- Delimiter. El valor predeterminado es el espacio en blanco, pero puede especificar caracteres, cadenas, patrones o bloques de script que especifiquen el delimitador. El operador Split en Windows PowerShell® utiliza una expresión regular en el delimitador, en lugar de un carácter sencillo.

  • -- Número máximo de subcadenas. El valor predeterminado es la devolución de todas las subcadenas. Si especifica un número menor que el número de subcadenas, las subcadenas restantes se concatenan en la última subcadena.

  • -- Opciones que especifican las condiciones que se hacen coincidir con el delimitador, como SimpleMatch y Multiline.

SINTAXIS

En el diagrama siguiente se muestra la sintaxis del operador -split.

Los nombres de parámetro no aparecen en el comando. Incluya solo los valores de parámetro. Los valores deben aparecer en el orden especificado en el diagrama de sintaxis.

-Split <String>

<String> -Split <Delimiter>[,<Max-substrings>[,"<Options>"]]

<String> -Split {<ScriptBlock>} [,<Max-substrings>]

Puede reemplazar -iSplit o -cSplit por -split en cualquier instrucción Split binaria (una instrucción Split que incluye un delimitador o un bloque de script). Los operadores -iSplit y -split no distinguen mayúsculas de minúsculas. El operador -cSplit distingue mayúsculas de minúsculas, lo que significa que se consideran las mayúsculas cuando se aplican las reglas del delimitador.

PARÁMETROS

  • <Cadena>
    Especifica una o varias cadenas que se van a dividir. Si envía varias cadenas, todas las cadenas se dividen con las mismas reglas de delimitador. Ejemplo:

              -split "red yellow blue green"
              red
              yellow
              blue
              green
    
  • <Delimiter>
    Los caracteres que identifican el final de una subcadena. El delimitador predeterminado es un espacio en blanco, incluidos los espacios y caracteres no imprimibles, como el de nueva línea (`n) y el de tabulación (`t). Cuando se dividen las cadenas, se omite el delimitador de todas las subcadenas. Ejemplo:

              "Lastname:FirstName:Address" -split ":"
              Lastname
              FirstName
              Address
    

    De forma predeterminada, se omite el delimitador de los resultados. Para conservar todo o parte del delimitador, encierre entre paréntesis la parte que desea conservar. Si se agrega el parámetro <Max-substrings>, tiene prioridad cuando el comando divide la colección. Si decide incluir un delimitador como parte del resultado, el comando devuelve el delimitador como parte de la salida; sin embargo, la división de la cadena para que se devuelva el delimitador como parte del resultado no se considera una división. Ejemplos:

              "Lastname:FirstName:Address" -split "(:)"
              Lastname
              :
              FirstName
              :
              Address    
    
    
              "Lastname/:/FirstName/:/Address" -split "/(:)/"
              Lastname
              :
              FirstName
              :    
              Address
    

    En el ejemplo siguiente, <Max-substrings> se establece en 3. Esto produce tres divisiones de los valores de cadena, pero un total de cinco cadenas en el resultado; el delimitador se incluye después de las divisiones, hasta que se alcanza el número máximo de tres subcadenas. Los delimitadores adicionales de la subcadena final forman parte de la subcadena.

             'Chocolate-Vanilla-Strawberry-Blueberry' -split '(-)', 3;
    
             Chocolate
             -
             Vanilla
             -
             Strawberry-Blueberry
    
  • <Max-substrings>
    Especifica el número máximo de veces que se divide una cadena. El valor predeterminado son todas las subcadenas divididas por el delimitador. Si hay más subcadenas, se concatenan en la subcadena final. Si hay menos subcadenas, se devuelven todas las subcadenas. Un valor de 0 y los valores negativos devuelven todas las subcadenas.

    Max-substrings no especifica el número máximo de objetos que se devuelven; su valor corresponde al número máximo de veces que se divide una cadena. Si envía más de una cadena (una matriz de cadenas) al operador Split, el límite de Max-substrings se aplica por separado a cada cadena. Ejemplo:

              $c = "Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune"
              $c -split ",", 5
              Mercury
              Venus
              Earth
              Mars
              Jupiter,Saturn,Uranus,Neptune
    
  • <ScriptBlock>
    Una expresión que especifica reglas que para aplicar el delimitador. La expresión debe evaluarse como $true o $false. Incluya el bloque de script entre llaves. Ejemplo:

                $c = "Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune"
              $c -split {$_ -eq "e" -or $_ -eq "p"}
              M
              rcury,V
              nus,Earth,Mars,Ju
              it
              r,Saturn,Uranus,N
    
              tun
    
  • <Opciones>
    Incluya el nombre de la opción entre comillas. Las opciones son válidas solamente cuando se usa el parámetro <Max-substrings> en la instrucción.

    La sintaxis del parámetro Options es:

        "SimpleMatch [,IgnoreCase]"
    
                "[RegexMatch] [,IgnoreCase] [,CultureInvariant]
                [,IgnorePatternWhitespace] [,ExplicitCapture] 
                [,Singleline | ,Multiline]"
    

    Las opciones de SimpleMatch son:

    • -- SimpleMatch: Usar la comparación de cadenas simple cuando se evalúa el delimitador. No se puede utilizar con RegexMatch.

    • -- IgnoreCase: Fuerza que la coincidencia no distinga mayúsculas de minúsculas, incluso aunque se especifique el operador -cSplit.

    Las opciones de RegexMatch son:

    1. -- RegexMatch: Usar coincidencia de expresiones regulares para evaluar el delimitador. Este es el comportamiento predeterminado. No se puede utilizar con SimpleMatch.

    2. -- IgnoreCase: Fuerza que la coincidencia no distinga mayúsculas de minúsculas, incluso aunque se especifique el operador -cSplit.

    3. -- CultureInvariant: Ignora las diferencias culturales de idioma cuando se evalúa el delimitador. Válido únicamente con RegexMatch.

    4. -- IgnorePatternWhitespace: Ignora los espacios en blanco sin escapar y los comentarios marcados con el signo de número (#). Válido únicamente con RegexMatch.

    5. -- Multiline: El modo Multiline reconoce el principio y el final de las líneas y cadenas. Válido únicamente con RegexMatch. Singleline es el valor predeterminado.

    6. -- Singleline: El modo Singleline reconoce solo el principio y el final de las cadenas. Válido únicamente con RegexMatch. Singleline es el valor predeterminado.

    7. -- ExplicitCapture: Ignora los grupos de coincidencia sin nombre de forma que solo se devuelvan los grupos de captura explícitos en la lista de resultados. Válido únicamente con RegexMatch.

OPERADORES DE DIVISIÓN UNARIOS Y BINARIOS

El operador de división unario (-split <cadena>) tiene mayor prioridad que una coma. Como resultado, si envía una lista de cadenas separada por comas al operador de división unario, solo se divide la primera cadena (antes de la primera coma).

Para dividir más de una cadena, utilice el operador de división binario (<cadena> -split <delimitador>). Incluya entre paréntesis todas las cadenas o almacene las cadenas en una variable y, después, envíe la variable al operador de división.

Tenga en cuenta el ejemplo siguiente:

        -split "1 2", "a b"
        1
        2
        a b


        "1 2", "a b" -split " "
        1
        2
        a
        b


        -split ("1 2", "a b")
        1
        2
        a
        b

        $a = "1 2", "a b"
        -split $a
        1
        2
        a
        b

EJEMPLOS

La instrucción siguiente divide la cadena en cada espacio en blanco.

        C:\PS> -split "Windows PowerShell 2.0`nWindows PowerShell with remoting"

        Windows
        PowerShell
        2.0
        Windows
        PowerShell
        with
        remoting

La instrucción siguiente divide la cadena en cada coma.

        C:\PS> "Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune" -split ','

        Mercury
        Venus
        Earth 
        Mars
        Jupiter
        Saturn
        Uranus
        Neptune

La siguiente instrucción divide la cadena en el patrón "er".

        C:\PS>"Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune" -split 'er'

        M
        cury,Venus,Earth,Mars,Jupit
        ,Saturn,Uranus,Neptune

La siguiente instrucción realiza una división que distingue mayúsculas de minúsculas en la letra "N".

        C:\PS> "Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune" -cSplit 'N'

        Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,
        eptune

La instrucción siguiente divide la cadena en "e" y "t".

        C:\PS> "Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune" -split '[et]'

        M
        rcury,V
        nus,
        ar
        h,Mars,Jupi

        r,Sa
        urn,Uranus,N
        p
        un

La instrucción siguiente divide la cadena en "e" y "r", pero limita las subcadenas resultantes a seis subcadenas.

        C:\PS> "Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune" -split '[er]', 6

        M

        cu
        y,V
        nus,
        arth,Mars,Jupiter,Saturn,Uranus,Neptune

La siguiente instrucción divide una cadena en tres subcadenas.

        C:\PS> "a,b,c,d,e,f,g,h" -split ",", 3

        a
        b
        c,d,e,f,g,h

La siguiente instrucción divide dos cadenas en tres subcadenas. (El límite se aplica a cada cadena de forma independiente).

        C:\PS> "a,b,c,d", "e,f,g,h" -split ",", 3

        a
        b
        c,d
        e
        f
        g,h

La siguiente instrucción divide cada línea de la cadena here-string en el primer dígito. Usa la opción Multiline para que reconozca el principio de cada línea y cadena.

El 0 representa el valor "devolver todo" del parámetro Max-substrings. Puede utilizar opciones, como Multiline, solo cuando se especifica el valor de Max-substrings.

        C:\PS> $a = @'
        1The first line.
        2The second line.
        3The third of three lines.
        '@
        
        C:\PS> $a -split "^\d", 0, "multiline"
        
        The first line.


        The second line.


        The third of three lines.

La instrucción siguiente utiliza la opción SimpleMatch para indicar al operador -split que debe interpretar literalmente el delimitador de punto (.).

Con el valor predeterminado, RegexMatch, el punto entre comillas (".") se interpreta para que coincida con cualquier carácter excepto un carácter de nueva línea. Como resultado, la instrucción Split devuelve una línea en blanco por cada carácter excepto el de nueva línea.

El 0 representa el valor "devolver todo" del parámetro Max-substrings. Puede utilizar opciones, como SimpleMatch, solo cuando se especifica el valor de Max-substrings.

        C:\PS> "This.is.a.test" -split ".", 0, "simplematch"

        This
        is
        a 
        test

La siguiente instrucción divide la cadena en uno de dos delimitadores posibles, según el valor de una variable.

        C:\PS> $i = 1
        C:\PS> $c = "LastName, FirstName; Address, City, State, Zip"
        C:\PS> $c -split {if ($i -lt 1) {$_ -eq ","} else {$_ -eq ";"}}

        LastName, FirstName
         Address, City, State, Zip

Las instrucciones de división siguientes dividen un archivo XML en primer lugar en el corchete angular de apertura y después en el punto y coma. El resultado es una versión legible del archivo XML.

        C:\PS> get-process PowerShell | export-clixml ps.xml
        C:\PS> $x = import-clixml ps.xml
        C:\PS> $x = $x -split "<"
        C:\PS> $x = $x -split ";"

Para mostrar el resultado, escriba "$x".

        C:\PS> $x

        @{__NounName=Process
        Name=PowerShell
        Handles=428
        VM=150081536
        WS=34840576
        PM=36253696
        ...

VEA TAMBIÉN

Split-Path

about_Operators

about_Comparison_Operators

about_Join