Búsqueda de sitios web

PowerShell: cómo extraer texto entre dos cadenas


Puede utilizar la siguiente sintaxis básica para extraer texto entre dos cadenas usando PowerShell:

[regex]::Match($original_string, '[^string1]+(?=string2)').Value

Este ejemplo en particular extrae el texto entre cadena1 y cadena2 dentro de la variable de cadena denominada original_string.

El siguiente ejemplo muestra cómo utilizar esta sintaxis en la práctica.

Ejemplo: Cómo extraer texto entre dos cadenas en PowerShell

Supongamos que tenemos la siguiente cadena:

  • Su número de identificación: 004593Empleado

Y supongamos que nos gustaría extraer solo el texto entre los dos puntos ( : ) y la cadena Empleado para obtener el siguiente valor:

004593

Podemos utilizar la siguiente sintaxis para hacerlo:

$original_string = "His ID Number:004593Employee"
[regex]::Match($original_string, '[^:]+(?=Employee)').Value

La siguiente captura de pantalla muestra cómo utilizar esta sintaxis en la práctica:

Observe que solo podemos extraer el 004593 de la cadena, que representa todo el texto entre los dos puntos ( : ) y Empleado .

Si desea extraer el texto entre cadenas específicas varias veces, puede utilizar el método Matches.

Por ejemplo, supongamos que tenemos la siguiente cadena:

The ID Values are #004593Employee and #002321Employee

Y supongamos que nos gustaría extraer solo el número de cada ID de empleado para obtener lo siguiente:

  • 004593
  • 002321

Podemos utilizar la siguiente sintaxis para hacerlo:

$original_string = "The ID Values are #004593Employee and #002321Employee"
[regex]::Matches($original_string, '[^#]+(?=Employee)').Value

La siguiente captura de pantalla muestra cómo utilizar esta sintaxis en la práctica:

Tenga en cuenta que solo podemos extraer el número de cada ID de empleado para obtener lo siguiente:

  • 004593
  • 002321

Al utilizar el método Matches, podemos extraer todas las apariciones de texto entre dos cadenas específicas.

Artículos relacionados