Acerca de SplitAbout Split

DESCRIPCIÓN BREVESHORT DESCRIPTION

Explica cómo usar el operador Split para dividir una o más cadenas en subcadenas.Explains how to use the Split operator to split one or more strings into substrings.

DESCRIPCIÓN LARGALONG DESCRIPTION

El operador split divide una o varias cadenas en subcadenas.The Split operator splits one or more strings into substrings. Puede cambiar los siguientes elementos de la operación de división:You can change the following elements of the Split operation:

  • Delimitador.Delimiter. El valor predeterminado es un espacio en blanco, pero puede especificar caracteres, cadenas, patrones o bloques de scripts que especifiquen el delimitador.The default is whitespace, but you can specify characters, strings, patterns, or script blocks that specify the delimiter. El operador Split de PowerShell usa una expresión regular en el delimitador, en lugar de un carácter simple.The Split operator in PowerShell uses a regular expression in the delimiter, rather than a simple character.
  • Número máximo de subcadenas.Maximum number of substrings. El valor predeterminado es devolver todas las subcadenas.The default is to return all substrings. Si especifica un número menor que el número de subcadenas, las subcadenas restantes se concatenan en la última subcadena.If you specify a number less than the number of substrings, the remaining substrings are concatenated in the last substring.
  • Opciones que especifican las condiciones en las que coincide el delimitador, como SimpleMatch y Multiline.Options that specify the conditions under which the delimiter is matched, such as SimpleMatch and Multiline.

SINTAXISSYNTAX

En el diagrama siguiente se muestra la sintaxis del operador-Split.The following diagram shows the syntax for the -split operator.

Los nombres de parámetro no aparecen en el comando.The parameter names do not appear in the command. Incluye solo los valores de parámetro.Include only the parameter values. Los valores deben aparecer en el orden especificado en el diagrama de sintaxis.The values must appear in the order specified in the syntax diagram.

-Split <String>
-Split (<String[]>)
<String> -Split <Delimiter>[,<Max-substrings>[,"<Options>"]]
<String> -Split {<ScriptBlock>} [,<Max-substrings>]

Puede sustituir -iSplit o -cSplit por -split en cualquier instrucción binaria dividida (una instrucción Split que incluya un delimitador o un bloque de script).You can substitute -iSplit or -cSplit for -split in any binary Split statement (a Split statement that includes a delimiter or script block). Los -iSplit operadores y no -split distinguen mayúsculas de minúsculas.The -iSplit and -split operators are case-insensitive. El -cSplit operador distingue entre mayúsculas y minúsculas, lo que significa que el caso se considera cuando se aplican las reglas de delimitador.The -cSplit operator is case-sensitive, meaning that case is considered when the delimiter rules are applied.

PARAMETERSPARAMETERS

<String> o <String[]><String> or <String[]>

Especifica una o más cadenas que se van a dividir.Specifies one or more strings to be split. Si envía varias cadenas, todas las cadenas se dividen con las mismas reglas de delimitador.If you submit multiple strings, all the strings are split using the same delimiter rules.

Ejemplo:Example:

-split "red yellow blue green"
red
yellow
blue
green

<Delimiter>

Caracteres que identifican el final de una subcadena.The characters that identify the end of a substring. El delimitador predeterminado es un espacio en blanco, incluidos espacios y caracteres no imprimibles, como newline ( ` n) y Tab ( ` t).The default delimiter is whitespace, including spaces and non-printable characters, such as newline (`n) and tab (`t). Cuando se dividen las cadenas, el delimitador se omite en todas las subcadenas.When the strings are split, the delimiter is omitted from all the substrings. Ejemplo:Example:

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

De forma predeterminada, el delimitador se omite en los resultados.By default, the delimiter is omitted from the results. Para conservar todo el delimitador o parte del mismo, escriba entre paréntesis la parte que desea conservar.To preserve all or part of the delimiter, enclose in parentheses the part that you want to preserve. Si <Max-substrings> se agrega el parámetro, tiene prioridad cuando el comando divide la colección.If the <Max-substrings> parameter is added, this takes precedence when your command splits up the collection. Si opta por incluir un delimitador como parte de la salida, el comando devuelve el delimitador como parte de la salida; sin embargo, la división de la cadena para devolver el delimitador como parte de la salida no cuenta como una división.If you opt to include a delimiter as part of the output, the command returns the delimiter as part of the output; however, splitting the string to return the delimiter as part of output does not count as a split.

Ejemplos:Examples:

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

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

En el ejemplo siguiente, <Max-substrings> se establece en 3.In the following example, <Max-substrings> is set to 3. Esto da como resultado tres divisiones de los valores de cadena, pero un total de cinco cadenas en el resultado resultante; el delimitador se incluye después de las divisiones, hasta que se alcanza el máximo de tres subcadenas.This results in three splits of the string values, but a total of five strings in the resulting output; the delimiter is included after the splits, until the maximum of three substrings is reached. Los delimitadores adicionales en la subcadena final se convierten en parte de la subcadena.Additional delimiters in the final substring become part of the substring.

'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.Specifies the maximum number of times that a string is split. El valor predeterminado es todas las subcadenas divididas por el delimitador.The default is all the substrings split by the delimiter. Si hay más subcadenas, se concatenan a la subcadena final.If there are more substrings, they are concatenated to the final substring. Si hay menos subcadenas, se devuelven todas las subcadenas.If there are fewer substrings, all the substrings are returned. Un valor de 0 devuelve todas las subcadenas.A value of 0 returns all the substrings. Los valores negativos devuelven la cantidad de subcadenas solicitadas a partir del final de la cadena de entrada.Negative values return the amount of substrings requested starting from the end of the input string.

Nota

Se ha agregado compatibilidad con valores negativos en PowerShell 7.Support for negative values was added in PowerShell 7.

Max-substrings no especifica el número máximo de objetos que se devuelven.Max-substrings does not specify the maximum number of objects that are returned. Su valor es igual al número máximo de veces que se divide una cadena.Its value equals the maximum number of times that a string is split. Si envía más de una cadena (una matriz de cadenas) al -split operador, el límite máximo de subcadenas se aplica a cada cadena por separado.If you submit more than one string (an array of strings) to the -split operator, the Max-substrings limit is applied to each string separately.

Ejemplo:Example:

$c = "Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune"
$c -split ",", 5
Mercury
Venus
Earth
Mars
Jupiter,Saturn,Uranus,Neptune
$c = "Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune"
$c -split ",", -5
Mercury,Venus,Earth,Mars
Jupiter
Saturn
Uranus
Neptune

<ScriptBlock>

Expresión que especifica las reglas para aplicar el delimitador.An expression that specifies rules for applying the delimiter. La expresión debe evaluarse como $true o $false.The expression must evaluate to $true or $false. Incluya el bloque de script entre llaves.Enclose the script block in braces.

Ejemplo:Example:

$c = "Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune"
$c -split {$_ -eq "e" -or $_ -eq "p"}
M
rcury,V
nus,
arth,Mars,Ju
it
r,Saturn,Uranus,N

tun

<Options>

Escriba el nombre de la opción entre comillas.Enclose the option name in quotation marks. Las opciones solo son válidas cuando <Max-substrings> se usa el parámetro en la instrucción.Options are valid only when the <Max-substrings> parameter is used in the statement.

La sintaxis del parámetro Options es la siguiente:The syntax for the Options parameter is:

"SimpleMatch [,IgnoreCase]"

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

Las opciones de SimpleMatch son:The SimpleMatch options are:

  • SimpleMatch : Use la comparación de cadenas simple al evaluar el delimitador.SimpleMatch : Use simple string comparison when evaluating the delimiter. No se puede usar con RegexMatch.Cannot be used with RegexMatch.
  • IgnoreCase : fuerza la coincidencia sin distinción entre mayúsculas y minúsculas, incluso si se especifica el operador-cSplit.IgnoreCase : Forces case-insensitive matching, even if the -cSplit operator is specified.

Las opciones de RegexMatch son:The RegexMatch options are:

  • RegexMatch : Use la coincidencia de expresiones regulares para evaluar el delimitador.RegexMatch : Use regular expression matching to evaluate the delimiter. Este es el comportamiento predeterminado.This is the default behavior. No se puede usar con SimpleMatch.Cannot be used with SimpleMatch.
  • IgnoreCase : fuerza la coincidencia sin distinción entre mayúsculas y minúsculas, incluso si se especifica el operador-cSplit.IgnoreCase : Forces case-insensitive matching, even if the -cSplit operator is specified.
  • CultureInvariant : omite las diferencias culturales de idioma cuando se evaluación el delimitador.CultureInvariant : Ignores cultural differences in language when evaluting the delimiter. Solo es válido con RegexMatch.Valid only with RegexMatch.
  • IgnorePatternWhitespace : omite el espacio en blanco sin escape y los comentarios marcados con el signo de número (#).IgnorePatternWhitespace : Ignores unescaped whitespace and comments marked with the number sign (#). Solo es válido con RegexMatch.Valid only with RegexMatch.
  • Multiline : el modo multilínea fuerza ^ y $ para que coincida con el extremo inicial de cada línea en lugar del principio y el final de la cadena de entrada.Multiline : Multiline mode forces ^ and $ to match the beginning end of every line instead of the beginning and end of the input string.
  • SingleLine : el modo SingleLine trata la cadena de entrada como un SingleLine.Singleline : Singleline mode treats the input string as a SingleLine. Obliga a que el . carácter coincida con todos los caracteres (incluidas las nuevas líneas), en lugar de coincidir con todos los caracteres excepto con la nueva línea \n .It forces the . character to match every character (including newlines), instead of matching every character EXCEPT the newline \n.
  • ExplicitCapture : omite los grupos de coincidencias no con nombre para que solo se devuelvan grupos de capturas explícitos en la lista de resultados.ExplicitCapture : Ignores non-named match groups so that only explicit capture groups are returned in the result list. Solo es válido con RegexMatch.Valid only with RegexMatch.

OPERADORES unarios y BINARIos SPLITUNARY and BINARY SPLIT OPERATORS

El operador unario de división ( -split <string> ) tiene mayor precedencia que una coma.The unary split operator (-split <string>) has higher precedence than a comma. Como resultado, si envía una lista separada por comas de cadenas al operador unario Split, solo se divide la primera cadena (antes de la primera coma).As a result, if you submit a comma-separated list of strings to the unary split operator, only the first string (before the first comma) is split.

Use uno de los siguientes patrones para dividir más de una cadena:Use one of the following patterns to split more than one string:

  • Usar el operador binario Split ( <string[]> -Split <delimiter> )Use the binary split operator (<string[]> -split <delimiter>)
  • Incluya todas las cadenas entre paréntesisEnclose all the strings in parentheses
  • Almacenar las cadenas en una variable y, a continuación, enviar la variable al operador SplitStore the strings in a variable then submit the variable to the split operator

Considere el ejemplo siguiente:Consider the following example:

PS> -split "1 2", "a b"
1
2
a b
PS> "1 2", "a b" -split " "
1
2
a
b
PS> -split ("1 2", "a b")
1
2
a
b
PS> $a = "1 2", "a b"
PS> -split $a
1
2
a
b

EJEMPLOSEXAMPLES

La siguiente instrucción divide la cadena en el espacio en blanco.The following statement splits the string at whitespace.

-split "Windows PowerShell 2.0`nWindows PowerShell with remoting"

Windows
PowerShell
2.0
Windows
PowerShell
with
remoting

La siguiente instrucción divide la cadena en cualquier coma.The following statement splits the string at any comma.

"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".The following statement splits the string at the pattern "er".

"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 entre mayúsculas y minúsculas en la letra "N".The following statement performs a case-sensitive split at the letter "N".

"Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune" -cSplit 'N'
Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,
eptune

La siguiente instrucción divide la cadena en "e" y "t".The following statement splits the string at "e" and "t".

"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 siguiente instrucción divide la cadena en "e" y "r", pero limita las subcadenas resultantes a seis subcadenas.The following statement splits the string at "e" and "r", but limits the resulting substrings to six substrings.

"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.The following statement splits a string into three substrings.

"a,b,c,d,e,f,g,h" -split ",", 3
a
b
c,d,e,f,g,h

La siguiente instrucción divide una cadena en tres subcadenas a partir del final de la cadena.The following statement splits a string into three substrings starting from the end of the string.

"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.The following statement splits two strings into three substrings. (El límite se aplica de forma independiente a cada cadena).(The limit is applied to each string independently.)

"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 de tipo "Here-String" en el primer dígito.The following statement splits each line in the here-string at the first digit. Utiliza la opción Multiline para reconocer el principio de cada línea y cadena.It uses the Multiline option to recognize the beginning of each line and string.

El 0 representa el valor "Return All" del parámetro Max-substrings.The 0 represents the "return all" value of the Max-substrings parameter. Puede usar opciones, como Multiline, solo cuando se especifica el valor de Max-substrings.You can use options, such as Multiline, only when the Max-substrings value is specified.

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

The first line.

The second line.

The third of three lines.

La siguiente instrucción usa el carácter de barra diagonal inversa para escapar el delimitador de punto (.).The following statement uses the backslash character to escape the dot (.) delimiter.

Con el valor predeterminado, RegexMatch, el punto entre comillas (".") se interpreta para que coincida con cualquier carácter excepto con un carácter de nueva línea.With the default, RegexMatch, the dot enclosed in quotation marks (".") is interpreted to match any character except for a newline character. Como resultado, la instrucción Split devuelve una línea en blanco para cada carácter excepto newline.As a result, the Split statement returns a blank line for every character except newline.

"This.is.a.test" -split "\."
This
is
a
test

La siguiente instrucción usa la opción SimpleMatch para indicar al operador-Split que interprete el delimitador de punto (.) literalmente.The following statement uses the SimpleMatch option to direct the -split operator to interpret the dot (.) delimiter literally.

El 0 representa el valor "Return All" del parámetro Max-substrings.The 0 represents the "return all" value of the Max-substrings parameter. Puede usar opciones, como SimpleMatch, solo cuando se especifica el valor Max-substrings.You can use options, such as SimpleMatch, only when the Max-substrings value is specified.

"This.is.a.test" -split ".", 0, "simplematch"
This
is
a
test

La siguiente instrucción divide la cadena en uno de dos delimitadores, dependiendo del valor de una variable.The following statement splits the string at one of two delimiters, depending on the value of a variable.

$i = 1
$c = "LastName, FirstName; Address, City, State, Zip"
$c -split $(if ($i -lt 1) {","} else {";"})
LastName, FirstName
 Address, City, State, Zip

CONSULTE TAMBIÉNSEE ALSO

Split-PathSplit-Path

about_Operatorsabout_Operators

about_Comparison_Operatorsabout_Comparison_Operators

about_Joinabout_Join