Powershell - Regulären Ausdruck Mehrere Übereinstimmungen

Vielleicht ist meine Argumentation fehlerhaft ist, aber ich kann nicht damit es funktioniert.

Hier ist meine regex: (Device\s#\d(\n.*)*?(?=\n\s*Device\s#|\Z))

Probieren Sie es aus: http://regex101.com/r/jQ6uC8/6

$getdevice ist der input-string. Ich bin immer dieser string aus dem Stream ein - /Ausgabe eines command-line-tool.

$dstate = $getdevice |
     select-string -pattern '(Device\s#\d(\n.*)*?(?=\n\s*SSD\s+|\Z))' -AllMatches |
     % { $_ -match '(Device\s#\d(\n.*)*?(?=\n\s*SSD\s+|\Z))' > $null; $matches[0] }
Write-Host $dstate

Ausgabe:

Gerät #0-Gerät #1 Gerät #2 Gerät #3-Gerät #4

Gleiche Ausgabe für $matches[1], $matches[2] ist leer.

Gibt es eine Möglichkeit, ich kann alle Spiele, wie auf regex101.com? Ich versuche zur Spaltung der Ausgabe/String in verschiedene Variablen (eine für Device0, eine für Device1, Device2, und so weiter).

Update: Hier ist die Ausgabe von dem Befehl Linie Werkzeug: http://pastebin.com/BaywGtFE

Herzlich willkommen auf Stack Overflow, @Frankstar. Bitte so viel Informationen wie Sie können, direkt in die Frage. Ich hab die regex aus regex101 und legen Sie Sie hier. (Die links zu regex101 sind großartig!).
Hallo @aliteralmind ! Ich versuchte mein bestes - vielen Dank für Ihr update. Wird im Hinterkopf behalten für zukünftige Fragen.

InformationsquelleAutor Frankstar | 2014-07-19

Schreibe einen Kommentar