about_Split
Aplica-se a: Windows PowerShell 2.0, Windows PowerShell 3.0, Windows PowerShell 4.0, Windows PowerShell 5.0
TÓPICO
about_Split
DESCRIÇÃO BREVE
Explica como usar o operador Split para dividir um ou mais cadeias de caracteres em subcadeias de caracteres.
DESCRIÇÃO LONGA
O operador Split divide uma ou mais cadeias de caracteres em subcadeias de caracteres. Você pode alterar os seguintes elementos da operação Split:
-- Delimitador. O padrão é o espaço em branco, mas você pode especificar caracteres, cadeias de caracteres, padrões ou blocos de script que especificam o delimitador. O operador Split do Windows PowerShell® usa uma expressão regular no delimitador, em vez de um caractere simples.
-- Número máximo de subcadeias de caracteres. O padrão é retornar todas as subcadeias de caracteres. Se você especificar um número menor que o número de subcadeias de caracteres, as subcadeias restantes serão concatenadas na última subcadeia de caracteres.
-- Opções que especificam as condições sob as quais o delimitador é correspondido, 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 somente os valores de parâmetro. Os valores devem aparecer na ordem especificada no diagrama de sintaxe.
-Split <String>
<String> -Split <Delimiter>[,<Max-substrings>[,"<Options>"]]
<String> -Split {<ScriptBlock>} [,<Max-substrings>]
Você pode substituir -iSplit ou -cSplit por -split em qualquer instrução Split binária (uma instrução Split que inclui um bloco de delimitador ou script). Os operadores -iSplit e -split diferenciam maiúsculas de minúsculas. O operador -cSplit diferencia maiúsculas de minúsculas, o que significa que esse caso é considerado quando são aplicadas as regras do delimitador.
PARÂMETROS
<Cadeia de caracteres>
Especifica uma ou mais cadeias de caracteres para divisão. Se você enviar várias cadeias de caracteres, todas elas serão divididas usando as mesmas regras do delimitador. Exemplo:-split "red yellow blue green" red yellow blue green
<parâmetro>
Os caracteres que identificam o final de uma subcadeia de caracteres. O delimitador padrão é o espaço em branco, incluindo espaços e caracteres não imprimíveis, como nova linha (`n) e guia (`t). Quando as cadeias de caracteres são divididas, o delimitador é omitido das subcadeias de caracteres. Exemplo:"Lastname:FirstName:Address" -split ":" Lastname FirstName Address
Por padrão, o delimitador é omitido dos resultados. Para preservar todo o delimitador ou parte dele, coloque entre parênteses a parte que deseja preservar. Se o parâmetro <Max-substrings> for adicionado, isso terá precedência quando seu comando dividir a coleção. Se você optar por incluir um delimitador como parte da saída, o comando retorna o delimitador como parte dela. No entanto, dividir a cadeia de caracteres para retornar o delimitador como parte da saída não conta como uma divisão. .Exemplos:
"Lastname:FirstName:Address" -split "(:)" Lastname : FirstName : Address "Lastname/:/FirstName/:/Address" -split "/(:)/" Lastname : FirstName : Address
No exemplo a seguir, <Max-substrings> é configurado como 3. Isso resulta em três divisões dos valores das cadeias de caracteres, mas em um total de cinco cadeias de caracteres na saída resultante; o delimitador é incluído após as divisões, até que seja atingido o número máximo de três subcadeias de caracteres. Os delimitadores adicionais contidos na subcadeia de caracteres final tornam-se parte dela.
'Chocolate-Vanilla-Strawberry-Blueberry' -split '(-)', 3; Chocolate - Vanilla - Strawberry-Blueberry
<Max-substrings>
Especifica o número máximo de vezes que uma cadeia de caracteres é dividida. O padrão é que todas as subcadeias de caracteres sejam divididas pelo delimitador. Se houver mais subcadeias de caracteres, elas serão concatenados na subcadeia de caracteres final. Se houver menos subcadeias de caracteres, todas elas serão retornadas. Um valor de 0 e valores negativos retornam todas as subcadeias de caracteres.Max-substrings não especifica o número máximo de objetos que são retornados; seu valor é igual ao número máximo de vezes que uma cadeia de caracteres é dividida. Se você enviar mais de uma cadeia de caracteres (uma matriz de cadeias de caracteres) ao operador Split, o limite Max-substrings será aplicado separadamente a cada cadeia de caracteres. Exemplo:
$c = "Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune" $c -split ",", 5 Mercury Venus Earth Mars Jupiter,Saturn,Uranus,Neptune
<ScriptBlock>
Uma expressão que especifica regras para aplicar o delimitador. A expressão deve ser avaliada como $true ou $false. Coloque o bloco de script entre chaves. Exemplo:$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
<Opções>
Coloque o nome da opção entre aspas. As opções somente são válidas quando o parâmetro <Max-substrings> for usado na instrução.A sintaxe para o parâmetro Options é:
"SimpleMatch [,IgnoreCase]" "[RegexMatch] [,IgnoreCase] [,CultureInvariant] [,IgnorePatternWhitespace] [,ExplicitCapture] [,Singleline | ,Multiline]"
As opções de SimpleMatch são:
-- SimpleMatch: usa a comparação simples de cadeia de caracteres ao avaliar o delimitador. Não pode ser usada com RegexMatch.
-- IgnoreCase: força a correspondência sem diferenciação de maiúsculas de minúsculas, mesmo se o operador -cSplit estiver especificado.
As opções de RegexMatch são:
-- RegexMatch: Usa a correspondência regular de expressões para avaliar o delimitador. Esse é o comportamento padrão. Não pode ser usada com SimpleMatch.
-- IgnoreCase: força a correspondência sem diferenciação de maiúsculas de minúsculas, mesmo se o operador -cSplit estiver especificado.
-- CultureInvariant: ignora as diferenças culturais no idioma ao avaliar o delimitador. Válida somente com RegexMatch.
-- IgnorePatternWhitespace: ignora o espaço em branco sem escape e os comentários marcados com o sinal de número (#). Válida somente com RegexMatch.
-- Multiline: o modo de várias linhas reconhece o início e o fim das linhas e cadeias de caracteres. Válida somente com RegexMatch. Singleline é o padrão.
-- Singleline: o modo de linha única reconhece apenas o início e o fim das cadeias de caracteres. Válida somente com RegexMatch. Singleline é o padrão.
-- ExplicitCapture: ignora os grupos de correspondência não nomeados para que somente os grupos de captura explícitos sejam retornados na lista de resultados. Válida somente com RegexMatch.
OPERADORES SPLIT UNÁRIOS E BINÁRIOS
O operador Split unário (-split <cadeia de caracteres>) tem mais precedência que uma vírgula. Como resultado, se você enviar uma lista separada por vírgulas de cadeias de caracteres para o operador Split unário, somente a primeira cadeia de caracteres (antes da primeira vírgula) será dividida.
Para dividir mais de uma cadeia de caracteres, use o operador Split binário (<cadeia de caracteres> -split <delimitador>). Coloque as cadeias de caracteres entre parênteses ou armazene-as em uma variável e, em seguida, envie a variável ao operador Split.
Considere o exemplo a seguir:
-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 with remoting"
Windows
PowerShell
2.0
Windows
PowerShell
with
remoting
A instrução a seguir divide a cadeia de caracteres em qualquer vírgula.
C:\PS> "Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune" -split ','
Mercury
Venus
Earth
Mars
Jupiter
Saturn
Uranus
Neptune
A instrução a seguir divide a cadeia de caracteres no padrão "er".
C:\PS>"Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune" -split 'er'
M
cury,Venus,Earth,Mars,Jupit
,Saturn,Uranus,Neptune
A instrução a seguir executa uma divisão que diferencia maiúsculas de minúsculas na letra "N".
C:\PS> "Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune" -cSplit 'N'
Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,
eptune
A instrução a seguir divide a cadeia de caracteres em "e" e "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
A instrução a seguir divide a cadeia de caracteres em "e" e "r", mas limita o número de subcadeias de caracteres resultantes para seis.
C:\PS> "Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune" -split '[er]', 6
M
cu
y,V
nus,
arth,Mars,Jupiter,Saturn,Uranus,Neptune
A instrução a seguir divide uma cadeia de caracteres em três subcadeias 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 duas cadeia de caracteres em três subcadeias de caracteres. (O limite é aplicado a cada cadeia de caracteres independentemente.)
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 na 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 0 representa o valor "return all" do parâmetro Max-substrings. Você somente pode usar as opções, como Multiline, quando o valor de Max-substrings for especificado.
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.
A instrução a seguir usa a opção SimpleMatch direcionar o operador -split para interpretar literalmente o delimitador de ponto (.).
Com o padrão, RegexMatch, o ponto entre aspas (".") é interpretado para corresponder a qualquer caractere, exceto um caractere de nova linha. Como resultado, a instrução Split retorna uma linha em branco para cada caractere, exceto a nova linha.
O 0 representa o valor "return all" do parâmetro Max-substrings. Você somente pode usar as opções, como SimpleMatch, quando o valor de Max-substrings for especificado.
C:\PS> "This.is.a.test" -split ".", 0, "simplematch"
This
is
a
test
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 = "LastName, FirstName; Address, City, State, Zip"
C:\PS> $c -split {if ($i -lt 1) {$_ -eq ","} else {$_ -eq ";"}}
LastName, FirstName
Address, City, State, Zip
As instruções Split 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