Je rassemble des informations sur certains périphériques Cisco en utilisant python et pexpect, et j'ai eu beaucoup de succès avec les RE pour extraire de petits objets. J'ai peur d'avoir frappé le mur à ce sujet. Certains commutateurs s'empilent ensemble, je l'ai identifié dans le script et utilisé une routine séparée pour analyser les données. Si le commutateur vous est empilé voir les éléments suivants (extrait de la sho ver sortie)Expression régulière python sur plusieurs lignes
Top Assembly Part Number : 800-25858-06
Top Assembly Revision Number : A0
Version ID : V08
CLEI Code Number : COMDE10BRA
Hardware Board Revision Number : 0x01
Switch Ports Model SW Version SW Image
------ ----- ----- ---------- ----------
* 1 52 WS-C3750-48P 12.2(35)SE5 C3750-IPBASE-M
2 52 WS-C3750-48P 12.2(35)SE5 C3750-IPBASE-M
3 52 WS-C3750-48P 12.2(35)SE5 C3750-IPBASE-M
4 52 WS-C3750-48P 12.2(35)SE5 C3750-IPBASE-M
Switch 02
---------
Switch Uptime : 11 weeks, 2 days, 16 hours, 27 minutes
Base ethernet MAC Address : 00:26:52:96:2A:80
Motherboard assembly number : 73-9675-15
Quand je rencontre ce que je dois extraire le numéro commutateur & modèle pour chaque dans le tableau 4, (sw peut être ignoré , mais il peut y avoir entre 1 et 9 commutateurs) C'est la chose de ligne multiple qui m'a eu comme je me suis bien passé avec le reste. Des idées s'il vous plaît?
OK, excuses. Mon regex a simplement commencé à regarder le dernier groupe de - jusqu'à ... alors je ne pouvais pas travailler ou où aller!
- {10] \ s- {10} (+.) Commutateur
Le modèle va changer et le nombre de commutateurs changera, je dois saisir les 4 lignes dans cet exemple qui sont
* 1 52 WS-C3750-48P 12.2(35)SE5 C3750-IPBASE-M
2 52 WS-C3750-48P 12.2(35)SE5 C3750-IPBASE-M
3 52 WS-C3750-48P 12.2(35)SE5 C3750-IPBASE-M
4 52 WS-C3750-48P 12.2(35)SE5 C3750-IPBASE-M
mais chaque commutateur pourrait être un modèle différent et il pourrait y avoir entre 1 et 9. pour cet exemple, idéalement je voudrais obtenir
*,1,WS-C3750-48P
,2,WS-C3750-48P
,3,WS-C3750-48P
,4,WS-C3750-48P
(l'astérisque signifie maître)
mais obtenir ces lignes fixerait m e sur la bonne voie
que diriez-vous de poster le code regex actuel que vous avez essayé ... je ne suis pas sûr que je comprends complètement ce que vous essayez d'obtenir. – Tom