Búsqueda de sitios web

PowerShell: cómo utilizar Regex para capturar todas las coincidencias


Puede utilizar la siguiente sintaxis básica en PowerShell para capturar todas las coincidencias de Regex en una cadena particular:

$m = ([regex]'A...').Matches($id_list)

Este ejemplo en particular captura todas las coincidencias del patrón 'A…' (la letra A mayúscula seguida de tres caracteres) en la variable de cadena denominada $id_list y almacena el resultado en un variable denominada $m.

Luego puede acceder a coincidencias específicas utilizando la siguiente sintaxis:

$m[1].Value

Este ejemplo particular devolverá el texto coincidente de la segunda aparición del patrón Regex encontrado en la cadena.

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

Ejemplo: cómo utilizar Regex para capturar todas las coincidencias en PowerShell

Supongamos que tenemos la siguiente cadena que contiene varios ID de empleado:

  • ‘EmpleadoA005 EmpleadoA006 EmpleadoA015’

Supongamos que queremos extraer cada patrón que coincida con la A seguida de tres números.

Podemos utilizar la siguiente sintaxis para hacerlo:

$id_list = 'EmployeeA005 EmployeeA006 EmployeeA015'
$m = ([regex]'A...').Matches($id_list)

Podemos usar la siguiente sintaxis para mostrar todos los patrones coincidentes que se encontraron:

$m | % {$_.Value}

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

Podemos ver que la variable $m contiene los tres patrones Regex coincidentes:

  • A005
  • A006
  • A015

También podríamos usar la siguiente sintaxis para acceder a una aparición específica de uno de los patrones Regex coincidentes:

$m[1].Value

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

Observe que esto devuelve solo la segunda aparición del patrón Regex coincidente, que resulta ser A006.

Artículos relacionados