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].ValueEste 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].ValueLa 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.

