Tengo la siguiente entrada de registro que estoy procesando en PowerShell Estoy tratando de extraer todos los nombres de actividad y duraciones usando el operador -match
pero solo estoy recuperando un grupo de coincidencia. No obtengo todas las coincidencias que veo cuando hago lo mismo en C# usando el objeto Regex
. ¿Alguien puede explicar lo que estoy haciendo mal?PowerShell - operador de concordancia y múltiples grupos
Relevante PowerShell Guión
$formattedMessage -match "(Get\sClient\sModel|Parse\sExpression|Get\sAbstract\sQuery|Compile\sQuery|Execute\sQuery|Get\sQuery\sPlan\sComplexity|Async\sTotal|Total)\s-\sduration\(([0-9]*)" | out-null
$matches
salida
Name Value
---- -----
0 Get Client Model - duration(0
1 Get Client Model
2 0
Ejemplo de registro de entrada:
Timestamp: 11/9/2009 6:48:41 PM
Message:
Category: QueryService
Priority: 3
EventId: 1001
Severity: Information
Title: SPARQL Query Response
Machine: SPOON16-SERVER
App Domain: KnowledgeBaseHost.exe
ProcessId: 2040
Process Name: D:\QueryService\QSHost.exe
Thread Name:
Win32 ThreadId:8092
Extended Properties:
Key - Workflow_cbbdd58b-e574-4054-88d4-1dd7a56dc9d9
Timeout - 1800
Result Format - WireTable
Result from Registry - False
Compiled Query from Cache - True
Result Count - 28332
Query Plan Complexity - 661622
Get Client Model - duration(0) start(0)
Parse Expression - duration(0) start(0)
Get Abstract Query - duration(0) start(0)
Compile Query - duration(0) start(0)
Get Query Plan - duration(0) start(1)
Execute Query - duration(63695) start(1)
Get Query Plan Complexity - duration(0) start(63696)
Get Executed Operations - duration(0) start(63696)
Total - duration(63696) start(0)
Async Total - duration(63696) start(0)
mejor respuesta, le permite asignar su resultado a una variable muy fácilmente para que pueda manejarlo como una matriz de coincidencias. – sonjz