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 :

[...]
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 regex : Sélectionner tout - Visualiser dans une fenêtre à part
(?m)^Switch.*Ports.*Model.*SW Version.*(?:(?:\r\n|[\r\n]).+$)*

Ensuite, j'essai de faire la même chose en Powershell :

Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
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.