uso todos repeticiones regulares regular rangos net los lenguaje expresión expresiones especiales espacios ejemplos caracteres regex powershell powershell-v2.0

regex - todos - ¿Cómo capturar múltiples coincidencias de expresiones regulares, desde una sola línea, en la variable mágica $ coincidencias en Powershell?



rangos expresiones regulares (2)

Digamos que tengo la cadena "bla bla F12 bla bla F32 bla bla bla" y quiero coincidir con la F12 y la F32 , ¿cómo podría capturar ambas con la variable mágica $ Powershell?

Si ejecuto el siguiente código en Powershell:

$string = "blah blah F12 blah blah F32 blah blah blah" $string -match "F/d/d"

La variable $ coincidencias solo contiene F12

También intenté:

$string -match "(F/d/d)"

Esta vez $ match tenía dos artículos, pero ambos son F12

Me gustaría que $ coincidencias contuvieran tanto F12 como F32 para su posterior procesamiento. Parece que no puedo encontrar la manera de hacerlo.

Toda la ayuda sería muy apreciada. :)


Puede hacer esto utilizando Select-String en PowerShell 2.0 de la siguiente manera:

Select-String F/d/d -input $string -AllMatches | Foreach {$_.matches}

Hace un tiempo, pedí un operador -matchall en MS Connect y esta sugerencia se cerró tal como se solucionó con este comentario:

"Esto se solucionó con el parámetro -allmatches para cadena de selección".


Sugiero usar esta sintaxis para que sea más fácil manejar su variedad de coincidencias:

$string = "blah blah F12 blah blah F32 blah blah blah" ; $matches = ([regex]''F/d/d'').Matches($string); $matches[1].Value; # get matching value for second occurance, F32