Búsqueda de sitios web

Eliminar espacios de una cadena en PowerShell [4 formas]


Usando el operador -replace

Utilice el operador -replace para eliminar espacios de una cadena en PowerShell.

Utilice -reemplace el operador:

$string = "John Williamson"
$string = $string -replace " ",""
$string

PRODUCCIÓN :

JohnWilliamson

Primero, debemos entender que reemplazar no significa quitar algo sino reemplazar una cosa por otra. De manera similar, utilizamos el operador -replace para reemplazar todas las apariciones de caracteres de espacio en blanco (" ") con una cadena vacía (""), que da como resultado la eliminación efectiva de espacios de una cadena en PowerShell.

Usamos este operador para realizar una operación de búsqueda y reemplazo en la cadena especificada. El operador -replace tomó dos parámetros; el primero fue el patrón/expresión regular a buscar y el segundo fue el reemplazo.

Recuerde, este operador no modifica la variable original, por lo que está bien si no tiene que conservarlo para uso futuro; de lo contrario, no olvides reasignar el nuevo valor (sin espacios) a la variable original. También reasignamos la cadena actualizada a la variable $string.

Imagine una cadena de varias líneas que contiene espacios iniciales y finales, espacios dobles y más, símbolos de tabulación o símbolos de barra espaciadora. Luego podemos usar el parámetro -replace como se indica a continuación para eliminar espacios de la cadena dada.

Utilice -reemplace el operador:

$string = "     John
       Williamson"
$string = $string -replace '(^\s+|\s+$)','' -replace '\s+',''

PRODUCCIÓN :

JohnWilliamson

Para el script anterior, eliminamos todos los espacios en blanco de toda la cadena, ya sean espacios, tabulaciones, nuevas líneas, etc. Luego, usamos el operador -replace dos veces y ambos usaron patrones de expresión regular para buscar. para el partido y reemplazar.

El primer operador -replace buscó uno o varios caracteres de espacio en blanco al principio (^\s+) de la cadena o al final (\s+$ ) de la cadena y los reemplazó con una cadena vacía, mientras que el segundo operador -replace era responsable de buscar uno o varios caracteres de espacio en blanco (\s+) en cualquier lugar dentro de la cadena y reemplazarlos. ellos con la cadena vacía.

Ahora, es posible que esté intentando comprender el papel de + y $ en la expresión regular (expresión regular); en el patrón (^\s+|\s+$), el cuantificador + se usó después de \s para hacer coincidir uno o varios caracteres de espacio en blanco en el inicio o el final de $string. El $ se usó para hacer coincidir el final de la línea; coincidía con la posición antes del carácter final de $string o antes del salto de línea final de un $string multilínea.

Aquí hay una imagen para comprender mejor la expresión regular (^\s+|\s+$)

Por otro lado, en el patrón de expresión regular '\s+' para un segundo parámetro -replace, se usó el cuantificador + después de \s para hacer coincidir uno o varios caracteres de espacio en blanco en cualquier lugar dentro de $string

Vale la pena señalar que en las expresiones regulares, el carácter ^ tenía un significado especial; es el ancla de inicio de línea (SOL); coincidía con la posición al inicio de $string, o el inicio de una línea en un $string multilínea.

Tenga en cuenta que el parámetro -replace no distingue entre mayúsculas y minúsculas de forma predeterminada, lo que significa que Hola y Hola son iguales. Si está utilizando este operador para reemplazar un solo carácter, use el parámetro -creplace en lugar de -replace. El parámetro -creplace considerará Hello y hello como dos cadenas diferentes.

Usando el método replace()

Utilice la función replace() para eliminar espacios de una cadena en PowerShell.

Utilice el método reemplazar():

$string1 = "John Williamson"
$string2 = "J o h n W i l l i a m s o n"
$string1 = $string1.replace(" ","")
$string2 = $string2.replace(" ","")
$string1
$string2

PRODUCCIÓN :

JohnWilliamson
JohnWilliamson

La función replace() es similar al operador -replace pero solo se usa al eliminar caracteres de espacios en blanco; no funciona con esas cadenas con tabulaciones, saltos de línea, etc.

Como $string no tiene tabulaciones ni saltos de línea, utilizamos este método para reemplazar todas las apariciones de caracteres de espacio en blanco con una cadena vacía. Desafortunadamente, al igual que el operador -replace, el método replace() no actualiza la cadena original y debemos reasignarla para uso futuro.

Usando el método Trim()

Utilice el método Trim() para eliminar los espacios en blanco iniciales y finales de una cadena en PowerShell.

Utilice el método Trim():

$string = "     John Williamson    "
$string = $string.Trim()
$string

PRODUCCIÓN :

John Williamson

Otro método para eliminar espacios en blanco de la cadena especificada es utilizar el método Trim() de la clase .NET System.String. En este ejemplo, se llamó al método Trim() en la variable $string y el resultado se reasignó a la variable $string. porque el método Trim() no actualiza la cadena original. También podemos usar TrimStart() y TrimEnd() para eliminar caracteres de espacios en blanco del inicio y el final de $string, respectivamente.

Usando .Split() Método -join Parámetro

Utilice el método .Split() con el parámetro -join para eliminar espacios de la cadena especificada en PowerShell.

Utilice el método .Split() con el parámetro -join:

$string = "     John Williamson    "
$string = $string.Split('',[System.StringSplitOptions]::RemoveEmptyEntries) -join '' 
$string

PRODUCCIÓN :

JohnWilliamson

El código anterior dividió la cadena en una matriz de caracteres con una cadena vacía como separador, eliminó las entradas vacías de la matriz resultante y luego unió los elementos restantes de la matriz nuevamente en una sola cadena. Rompamos el $string.Split('',[System.StringSplitOptions]::RemoveEmptyEntries) para entenderlo fácilmente:

  • Split(): este método se utilizó para dividir la cadena en una matriz, con una cadena vacía como separador.
  • [System.StringSplitOptions]::RemoveEmptyEntries: esta opción se usó para eliminar cualquier elemento vacío que pueda estar presente en la matriz después de la división.
  • -join '': este operador se utilizó para unir los elementos restantes de la matriz nuevamente en una sola cadena. La cadena vacía en el operador -join '' se usó como separador entre los elementos de la matriz.

Este enfoque también funcionará en cadenas de varias líneas que tengan tabulaciones, saltos de línea, etc. Consulte el siguiente ejemplo:

Utilice el método .Split() con el parámetro -join:

$string = "     John
          Williamson    "
$string = $string.Split('',[System.StringSplitOptions]::RemoveEmptyEntries) -join '' 
$string

PRODUCCIÓN :

JohnWilliamson

Así es como eliminar espacios de String en PowerShell.

Artículos relacionados