Compartilhar via


about_Split

TÓPICO
    about_Split

DESCRIÇÃO RESUMIDA
    Explica como usar o operador de divisão para dividir uma ou mais 
    cadeias de caracteres em subcadeias de caracteres. 

DESCRIÇÃO LONGA
    O operador de divisão divide uma ou mais cadeias de caracteres em 
    subcadeias de caracteres. Você pode alterar os seguintes 
    elementos da operação de divisão:
    
    -- Delimitador. O padrão é um espaço em branco, mas você pode especificar 
       caracteres, cadeias de caracteres, padrões ou blocos de script que 
especifiquem o delimitador.
    
    -- Número máximo de subcadeias de caracteres. O padrão é retornar 
       todas as subcadeias de caracteres. Se você especificar um número 
       menor do que o de subcadeias de caracteres, as subcadeias 
       restantes serão concatenadas na última. 

    -- Opções que especificam as condições nas quais ocorre a 
       correspondência de delimitador, como SimpleMatch e Multiline. 


  SINTAXE

   O diagrama a seguir mostra a sintaxe do operador -split.

   Os nomes de parâmetros não aparecem no comando. Inclua apenas os 
   valores de parâmetros. Os valores devem aparecer na ordem 
   especificada no diagrama de sintaxe.

    -Split <String>

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

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

   Em qualquer instrução de divisão, você pode substituir -iSplit ou -cSplit por -split.
   Os operadores -iSplit e -split não diferenciam maiúsculas de minúsculas. 
   O operador -cSplit diferencia maiúsculas de minúsculas, ou seja, 
   o uso de maiúsculas e minúsculas é levado em conta quando as regras do 
   delimitador são aplicadas.


  PARÂMETROS

   <String>
        Especifica uma ou mais cadeias de caracteres para divisão. Se 
        você enviar várias cadeias de caracteres, todas serão 
        divididas usando as mesmas regras de delimitador.
        Exemplo:

        -split "vermelho amarelo azul verde"
        vermelho
            amarelo
        azul
        verde

   <Delimiter>
        Os caracteres que identificam o término de uma subcadeia de 
        caracteres. O delimitador padrão é um espaço em branco, o que 
        inclui espaços e caracteres não-imprimíveis, como nova linha 
        (`n) e tabulação (`t). Quando as cadeias de caracteres são 
        divididas, o delimitador é omitido de todas as subcadeias. 
        Exemplo:

        "Sobrenome:Nome:Endereço" -split ":"
        Sobrenome
        Nome
        Endereço
    
    <Max-substrings>
        Especifica o número máximo de subcadeias de caracteres 
        retornadas. O padrão é retornar todas as subcadeias divididas 
        pelo delimitador. Se houver mais subcadeias, elas serão 
        concatenadas à subcadeia final. Se houver menos subcadeias, 
        todas serão retornadas. Um valor 0 e valores negativos 
        retornam todas as subcadeias.

        Se você enviar mais de uma cadeia de caracteres (uma matriz 
        de cadeias de caracteres) ao operador de divisão, o limite 
        máximo de subcadeias será aplicado separadamente a cada 
        cadeia de caracteres. Exemplo:

        $c = "Mercúrio,Vênus,Terra,Marte,Júpiter,Saturno,Urano,Netuno" 
        $c -split ",", 5
        Mercúrio
        Vênus
        Terra
        Marte
        Júpiter,Saturno,Urano,Netuno
    

    <ScriptBlock>
        Uma expressão que especifica as regras de aplicação do 
        delimitador. A expressão deve ser avaliada como $true ou 
        $false. Coloque o bloco de script entre chaves. Exemplo:
    
            $c = "Mercúrio,Vênus,Terra,Marte,Júpiter,Saturno,Urano,Net
            uno" $c -split {$_ -eq "e" -or $_ -eq "p"}
        M
        rcúrio,Vênus,T
        rra, Mart
        ,Jú
        iter,Saturno,Urano,N
        tuno

    <Options>
        Inclua o nome da opção entre aspas. As opções serão válidas 
        somente quando o parâmetro <Max-substrings> for usado na 
        instrução.

        A sintaxe do parâmetro de opções é:

        "SimpleMatch [,IgnoreCase]"

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

 
        As opções de SimpleMatch são:
            
          -- SimpleMatch: usa a comparação simples entre cadeias de 
             caracteres ao avaliar o delimitador. Não pode ser usado 
             com RegexMatch.

          -- IgnoreCase: força a correspondência sem diferenciar 
             maiúsculas de minúsculas, mesmo que o operador -cSplit 
             seja especificado.


        As opções de RegexMatch são:

          -- RegexMatch: usa a correspondência entre expressões 
             regulares para avaliar o delimitador. Esse é o 
             comportamento padrão. Não pode ser usado com SimpleMatch.

          -- IgnoreCase: força a correspondência sem diferenciar 
             maiúsculas de minúsculas, mesmo que o operador -cSplit 
             seja especificado.

          -- CultureInvariant: ignora diferenças culturais de idioma 
             ao avaliar o delimitador. Válido somente com RegexMatch.

          -- IgnorePatternWhitespace: ignora espaços em branco sem 
             escape e comentários marcados com o sinal de número (#). 
             Válido somente com RegexMatch.

          -- Multiline: o modo Multiline reconhece o início e o 
             término de linhas e cadeias de caracteres. Válido 
             somente com RegexMatch. Singleline é o padrão.

          -- Singleline: o modo Singleline reconhece somente o início 
             e o término de cadeias de caracteres. Válido somente com 
             RegexMatch. Singleline é o padrão.

          -- ExplicitCapture: ignora grupos de correspondência não 
             nomeados, de forma que só grupos de captura explícitos 
             sejam retornados na lista de resultados. Válido somente 
             com RegexMatch.
    

  OPERADORES DE DIVISÃO UNÁRIOS E BINÁRIOS

    O operador de divisão unário (-split <string>) tem precedência sobre a 
    vírgula. Como resultado, se você enviar uma lista de cadeias de 
    caracteres separada por vírgulas ao operador de divisão unário, 
    só a primeira cadeia de caracteres (antes da primeira vírgula) 
    será dividida.

    Para dividir mais de uma cadeia de caracteres, use o operador de 
    divisão binário (<string> -split <delimiter>). Coloque todas as 
    cadeias de caracteres entre parêntesesou armazene-as em uma variável, 
    e depois envie a variável ao operador de divisão.

    Considere o exemplo abaixo:

    -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

    
  EXEMPLOS

    A instrução a seguir divide a cadeia de caracteres no espaço em branco.

    C:\PS> -split "Windows PowerShell 2.0`nWindows PowerShell comunicação remota"

    Windows
    PowerShell
    2.0
    Windows
    PowerShell
    comunicação
    remota


    A instrução a seguir divide a cadeia de caracteres em qualquer vírgula.

    C:\PS> "Mercúrio,Vênus,Terra,Marte,Júpiter,Saturno,Urano,Netuno" -split ','

        Mercúrio
        Vênus
        Terra 
        Marte
        Júpiter
        Saturno
        Urano
        Netuno


    A instrução a seguir divide a cadeia de caracteres no padrão "er".

    C:\PS> "Mercúrio,Vênus,Terra,Marte,Júpiter,Saturno,Urano,Netuno" -split 'er'

    M
    cúrio,Vênus,Terra,Marte,Júpit
    ,Saturno,Urano,Netuno



    A instrução a seguir executa uma divisão diferenciando maiúsculas 
    de minúsculas na letra "N".

    C:\PS> "Mercúrio,Vênus,Terra,Marte,Júpiter,Saturno,Urano,Netuno" -cSplit 'N'

    Mercúrio,Vênus,Terra,Marte,Júpiter,Saturno,Urano,
    etuno



    A instrução a seguir divide a cadeia de caracteres em "e" e "t".

        C:\PS> "Mercúrio,Vênus,Terra,Marte,Júpiter,Saturno,Urano,Netuno" -split '[et]'

        M
        rcúrio,V
        nus,

        rra,Mar

        ,Júpi

        r,Sa
        urno,Urano,N

        uno


    A instrução a seguir divide a cadeia de caracteres em "e" e "r", 
    mas limita as subcadeias resultantes a seis.

        C:\PS> "Mercúrio,Vênus,Terra,Marte,Júpiter,Saturno,Urano,Netuno" -split '[er]', 6

    M

    cú
    io,V
    nus,T
    rra,Marte,Júpiter,Saturno,Urano,Netuno



    A instrução a seguir divide uma cadeia de caracteres em três subcadeias. 
        
        C:\PS> "a,b,c,d,e,f,g,h" -split ",", 3

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


    A instrução a seguir divide duas cadeias de caracteres em três 
    subcadeias (o limite é aplicado independentemente a cada cadeia 
    de caracteres). 
        
        C:\PS> "a,b,c,d", "e,f,g,h" -split ",", 3

    a
    b
    c,d
    e
    f
    g,h


    A instrução a seguir divide cada linha da cadeia de caracteres 
    here no primeiro dígito. Ela usa a opção Multiline para 
    reconhecer o início de cada linha e cadeia de caracteres.

    O zero representa o valor "retornar todas" do parâmetro 
    "Max-substrings". Você só poderá usar opções, como Multiline, 
    quando o valor máximo de subcadeias for especificado.
    
        C:\PS> $a = @'
    1A primeira linha.
    2A segunda linha.
    3A terceira de três linhas.
    '@
        
        C:\PS> $a -split "^\d", 0, "multiline"
    
    A primeira linha.


    A segunda linha.


    A terceira de três linhas.



    A instrução a seguir usa a opção SimpleMatch para direcionar o 
    operador -split a interpretar o delimitador de ponto (.) 
    literalmente. 

    Com o padrão, RegexMatch, o ponto entre aspas (".") é 
    interpretado para corresponder a qualquer caractere, com exceção 
    de um caractere de nova linha. Como resultado, a instrução de 
    divisão retorna uma linha em branco para todos os caracteres, 
    menos o de nova linha.

    O zero representa o valor "retornar todas" do parâmetro 
    "Max-substrings". Você só poderá usar opções, como SimpleMatch, 
    quando o valor máximo de subcadeias for especificado.

        C:\PS> "Isto.é.um.teste" -split ".", 0, "simplematch"

    Isto
        é
        um 
    teste   



    A instrução a seguir divide a cadeia de caracteres em um de dois 
    delimitadores, dependendo do valor de uma variável.

        C:\PS>   $i = 1
        C:\PS>   $c = "Sobrenome, Nome; Endereço, Cidade, Estado, CEP"
        C:\PS>   $c -split {if ($i -lt 1) {$_ -eq ","} else {$_ -eq ";"}}

    Sobrenome, Nome
     Endereço, Cidade, Estado, CEP
        
    

    As instruções de divisão a seguir dividem um arquivo XML primeiro 
    no colchete angular, e depois no ponto-e-vírgula. O resultado é 
    uma versão legível do arquivo 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 exibir o resultado, digite "$x".
    
    C:\PS> $x

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


CONSULTE TAMBÉM
    Split-Path
    about_Operators
    about_Comparison_Operators
    about_Join