Salut,
J'ai des difficultés à trouver une regexp. Je veux parser un fichier de configuration dont certaines lignes ont le format suivant (espaces en début de lignes, espaces ou tabulation(s) entre le premier mot et la chaîne de caractères) :
Le but est d'extraire le mot en début de ligne et la chaîne de caractères entre quotes. A des fins de test, j'étais parti sur ce code (pour le moment, je n'ai pas mis les parenthèses destinées à l'extraction) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 host1 'cpu disk' host2 'cpu disk mem' host3 'disk'
Rien ne s'affiche.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 open CONF, '<./config_file'; while(<CONF>) { if(m/\s+\w\s+'(\w\s?)*'/) { print $_; } } close CONF;
J'ai décidé de procéder étape par étape, en testant ça :
Toutes les lignes souhaitées s'affichent. Par contre, si je rajoute simplement ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part if(m/^\s+\w/) { print $_; }
ou même ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part if(m/^\s+\w\s+/) { print $_; }
plus rien ne s'affiche... Je ne maîtrise pas les expressions régulières mais jusqu'ici, ça devrait fonctionner... Si une âme charitable pouvait éclairer ma lanterne...
Code : Sélectionner tout - Visualiser dans une fenêtre à part if(m/^\s+\w\s/) { print $_; }![]()
Partager