Cómo extraer una subcadena de PowerShell de una cadena

  1. Extraer una subcadena de PowerShell con el método Substring()
  2. Extraer una subcadena de PowerShell a la izquierda de una cadena
  3. Extraer una subcadena de PowerShell antes y después de un carácter especificado
  4. Extraer una subcadena de PowerShell entre dos caracteres
Cómo extraer una subcadena de PowerShell de una cadena

Este artículo ilustra cómo podemos extraer una subcadena de una cadena en PowerShell. Una subcadena es simplemente una parte de una cadena.

Podemos crear una subcadena en PowerShell usando los métodos Substring() y split(). Por ejemplo, si tenemos la cadena Delftstack.com, Delftstack es una subcadena y com es otra.

Este artículo discutirá el método Substring().

Extraer una subcadena de PowerShell con el método Substring()

Comencemos observando la sintaxis del método Substring().

string.Substring(int startIndex, int length)

El int en la sintaxis marca startIndex y length como números de índice. El startIndex indica el primer carácter de la subcadena que queremos extraer, mientras que length es el número de caracteres que queremos extraer de una cadena.

Usamos el método IndexOf para determinar el startIndex y la length de una subcadena.

Determinamos el startIndex sumando 1 al valor resultante de IndexOf de la subcadena. Veamos un ejemplo.

Asumiendo que ned.delftstack.com es nuestra cadena, ¿cuál es la posición de índice de la primera letra n en nuestra cadena? Podemos determinar la posición ejecutando el siguiente comando:

"ned.delftstack.com".IndexOf('n')

El resultado es 0. Esto se debe a que el método IndexOf busca la primera ocurrencia de una cadena de izquierda a derecha y siempre comienza desde 0.

Por lo tanto, si deseamos extraer una subcadena que comience con la letra n, nuestro startIndex será 0.

También podemos usar LastIndexOf para encontrar la ubicación de la última ocurrencia de una cadena. Por ejemplo, la última ocurrencia de la letra d sería:

"ned.delftstack.com".LastIndexOf('d')

Esta información básica te permitirá manipular cadenas en PowerShell.

Extraer una subcadena de PowerShell a la izquierda de una cadena

Pongamos la información anterior en práctica.

Supongamos que queremos extraer la subcadena ned de ned.delftstack.com. ¿Cómo lo haríamos?

Comenzaremos guardando nuestra cadena en una variable llamada ourstrng.

$ourstrng = "ned.delftstack.com"

Desde la sintaxis del método Substring(), nuestro comando será:

$ourstrng.Substring(0, 3)

Esto devolverá ned ya que nuestro startIndex es 0 y length son 3 caracteres. ¿Qué pasa si nuestro objetivo es extraer delftstack de nuestra cadena?

El primer paso es determinar el startIndex para nuestra subcadena. En este caso, usaremos el primer punto, que es el separador.

$ourstrng.IndexOf(".")

El resultado será 3. Pero si recuerdas, sumamos 1 al resultado para el primer carácter de la cadena; por lo tanto, nuestro startIndex será 4.

La longitud será el número de caracteres que queremos que tenga la subcadena; contaremos desde 1. La subcadena delftstack tiene 10 caracteres.

$ourstrng.Substring(4, 10)

Esto devolverá delftstack.

Extraer una subcadena de PowerShell antes y después de un carácter especificado

Supongamos que queremos extraer tanto ned como delftstack.com de nuestra cadena. ¿Cómo lo haríamos?

Primero, necesitamos determinar la posición de nuestro separador, el primer .. El comando a continuación guardará el separador en una variable llamada $sepchar.

$sepchar = $ourstrng.IndexOf(".")

Para extraer nuestras subcadenas, ejecutaremos el siguiente comando:

$ourstrng.Substring(0, $sepchar)

Esto extraerá la primera parte, que es ned. Para la otra subcadena, ejecutaremos:

$ourstrng.Substring($sepchar + 1)

Esto devolverá deftstack.com.

Extraer una subcadena de PowerShell entre dos caracteres

Si nuestra cadena es ned.delftstack.com, nuestra subcadena será delftstack ya que se encuentra entre nuestros primeros y segundos puntos. Tal script requerirá tres comandos.

El primer comando determinará la posición de nuestro primer punto (.) y la guardará en la variable firstsep.

$firstsep = $ourstrng.IndexOf(".")

El segundo comando determinará la segunda posición de nuestro punto usando el método LastIndexOf y la guardará en la variable lastrep.

$lastrep = $ourstrng.LastIndexOf(".")

El último comando extraerá la subcadena delftstack de nuestra cadena.

$ourstrng.Substring($firstsep + 1, $lastrep - 4)

En conclusión, puedes extraer una subcadena en una cadena antes, después y entre separadores de PowerShell. El método Substring() es útil, como hemos visto arriba.

¿Disfrutas de nuestros tutoriales? Suscríbete a DelftStack en YouTube para apoyarnos en la creación de más guías en vídeo de alta calidad. Suscríbete
John Wachira avatar John Wachira avatar

John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.

LinkedIn

Artículo relacionado - PowerShell String