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
  




Sumário