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

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.
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.
LinkedInArtículo relacionado - PowerShell String
- Cómo encontrar la posición de una subcadena en PowerShell
- Cómo reemplazar un texto en un archivo usando PowerShell
- Cómo verificar si una cadena no es NULL o VACÍA en PowerShell
- Comprobar si la cadena está vacía en PowerShell
- Cómo convertir una cadena segura a texto sin formato en PowerShell
- Cómo eliminar espacios de una variable usando PowerShell