Extraiga una subcadena de PowerShell de una cadena

John Wachira 21 junio 2023
  1. Extraiga una subcadena de PowerShell con el método Substring()
  2. Extraiga una subcadena de PowerShell a la izquierda de una cadena
  3. Extraiga una subcadena de PowerShell antes y después de un carácter específico
  4. Extraiga una subcadena de PowerShell entre dos caracteres
Extraiga 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().

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

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

string.Substring(int startIndex, int length)

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

Usamos el método IndexOf para determinar el índice de inicio y la longitud de una subcadena.

Determinamos el índice de inicio agregando 1 al valor resultante del Índice de la subcadena. Veamos un ejemplo.

Suponiendo que ned.delftstack.com sea nuestra cadena, ¿cuál es la posición del í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 aparición de una cadena de izquierda a derecha y siempre comienza desde 0.

Por tanto, si deseamos extraer una subcadena a partir de la letra n, nuestro índice de inicio será 0.

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

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

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

Extraiga una subcadena de PowerShell a la izquierda de una cadena

Pongamos la información anterior a trabajar.

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

Comenzaremos guardando nuestra cadena en una variable llamada nuestracadena.

$ourstrng = "ned.delftstack.com"

De la sintaxis del Método Substring(), nuestro comando será:

$ourstrng.Substring(0,3)

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

El primer paso es determinar el índice de inicio para nuestra subcadena. En este caso, usaremos el primer punto, que es el separador.

$ourstrng.IndexOf(".")

El resultado será 3. Pero si puede recordar, agregamos 1 al resultado del primer carácter de la cadena; por lo tanto, nuestro índice de inicio 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.

Extraiga una subcadena de PowerShell antes y después de un carácter específico

Digamos 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 siguiente comando 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.

Extraiga una subcadena de PowerShell entre dos caracteres

Si nuestra cadena es ned.delftstack.com, nuestra subcadena será delftstack ya que se encuentra entre nuestro primer y segundo período. Tal script requerirá tres comandos.

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

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

El segundo comando determinará la segunda posición de nuestro período usando el método LastIndexOf y lo 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, puede extraer una subcadena en una cadena antes, después y entre los separadores de PowerShell. El método Substring() es útil, como hemos visto anteriormente.

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