Búsqueda de sitios web

¿Cómo dividir cadenas en matrices en PowerShell?


¿Quiere dividir cadenas en matrices en PowerShell? En este tutorial de PowerShell, le mostraré diferentes métodos para dividir cadenas en PowerShell.

En PowerShell, para dividir una cadena en una matriz, use el operador -split con la variable de cadena. Por ejemplo, $array=$string -split 'delimiter' divide $string en cada aparición de 'delimiter', creando una matriz $array de las subcadenas resultantes. Este método es eficaz para analizar cadenas basándose en separadores específicos.

Dividir cadenas en matrices en PowerShell

Usando el operador -split

La forma más sencilla de dividir una cadena en PowerShell es mediante el operador -split. Este operador le permite especificar un delimitador, que PowerShell usará para dividir la cadena en una matriz de subcadenas.

$stringToSplit = "one,two,three,four"
$array = $stringToSplit -split ","

En este ejemplo, la cadena "uno, dos, tres, cuatro" se divide en cada coma, creando una matriz con cuatro elementos: "uno", "dos", "tres" y "cuatro".

Usando el método .Split()

Otra forma de dividir una cadena es utilizar el método .Split() en PowerShell. Este método es parte del objeto de cadena en PowerShell y puede tomar un carácter o una matriz de caracteres como argumento.

$stringToSplit = "one two three four"
$delimiter = " "
$array = $stringToSplit.Split($delimiter)

Aquí, el método .Split() se utiliza para dividir la cadena en cada espacio, lo que da como resultado una matriz de palabras. Puede ver la captura de pantalla del resultado después de ejecutar el script usando PowerShell ISE.

Dividir cadenas en matrices en PowerShell con múltiples delimitadores

Ejemplo de uso del operador -split

A veces, es posible que necesites dividir una cadena utilizando varios delimitadores en PowerShell. Tanto el operador -split como el método .Split() pueden manejar este escenario.

$stringToSplit = "one,two;three:four"
$delimiters = ',|;|:'
$array = $stringToSplit -split $delimiters

En este ejemplo, el operador -split utiliza un patrón de expresión regular que incluye múltiples delimitadores (coma, punto y coma y dos puntos).

Ejemplo de uso del método .Split()

Aquí hay otro ejemplo del uso del método .split() para dividir cadenas en matrices en PowerShell con múltiples delimitadores.

$stringToSplit = "one,two;three:four"
$delimiters = @(',', ';', ':')
$array = $stringToSplit.Split($delimiters)

Para el método .Split(), se pasa una matriz de caracteres como delimitadores y el método divide la cadena en cada instancia de cualquiera de los caracteres.

Dividir cadenas en matrices en PowerShell conservando entradas vacías

Ejemplo de uso del operador -split

De forma predeterminada, tanto -split como .Split() omitirán las subcadenas vacías de la matriz resultante en PowerShell. Si desea incluir estas subcadenas vacías, debe utilizar una opción adicional.

$stringToSplit = "one,,two,,three,,four"
$array = $stringToSplit -split ",", 0, "SimpleMatch"

La opción "SimpleMatch" le indica a PowerShell que incluya subcadenas vacías en la matriz.

Ejemplo de uso del método .Split()

A continuación se muestra un ejemplo de cómo dividir cadenas en matrices en PowerShell, conservando las entradas vacías.

$stringToSplit = "one,,two,,three,,four"
$delimiter = ","
$array = $stringToSplit.Split($delimiter, [System.StringSplitOptions]::None)

Aquí, usamos el valor de enumeración StringSplitOptions.None para incluir subcadenas vacías en la matriz.

Conclusión

Dividir cadenas en matrices es una tarea común y sencilla en PowerShell. Ya sea que prefiera el operador -split por su simplicidad y potencia con expresiones regulares, o el método .Split() por su enfoque directo, ambos son herramientas efectivas en su caja de herramientas de secuencias de comandos. .

En este tutorial de PowerShell, he explicado cómo dividir cadenas en matrices en PowerShell utilizando varios métodos.

Artículos relacionados