une Regex multiligne en powershell
Bonjour,
J'ai un fichier de rapport et dans ce fichier un tableau en texte brute.
J'ai besoin de chercher ce tableau. Pour ce faire, j'utilise des regex.
Pour trouver la regex, j'utilise notepad++ pour faire mes essaies.
Dans cette échantillon du fichier texte :
Citation:
[...]
Daughterboard revision number : A0
Hardware Board Revision Number : 0x01
Switch Ports Model SW Version SW Image
------ ----- ----- ---------- ----------
* 1 52 WS-C2960S-48FPS-L 12.2(55)SE5 C2960S-UNIVERSALK9-M
2 52 WS-C2960S-48FPS-L 12.2(55)SE5 C2960S-UNIVERSALK9-M
Switch 02
---------
Switch Uptime : 2 years, 50 weeks, 2 days, 3 hours, 19 minutes
Base ethernet MAC Address : 58:97:1E:9C:BA:80
[...]
Pour trouver le tableau avec les entêtes "Switch;Ports;Model;SW Version;SW Image", j'utilise cette regex :
Code:
(?m)^Switch.*Ports.*Model.*SW Version.*(?:(?:\r\n|[\r\n]).+$)*
Ensuite, j'essai de faire la même chose en Powershell :
Code:
1 2
| $fileContent = [io.file]::ReadAllText("C:\shver.txt")
$fileContent | Select-String "(?smi)^Switch.*Ports.*Model.*SW Version.*(?:(?:\r\n|[\r\n]).+$)" -AllMatches | %{ $_.Matches } | %{ $_.Value } |
Sauf que la regex n'arrive pas à s'arrêter à la fin de mon tableau et elle me retourne les lignes jusqu'à la fin du fichier.
Que faire au niveau de la regex ?
en vous remerciant d'avance.