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:
1
2
3 host1 'cpu disk' host2 'cpu disk mem' host3 'disk'
Rien ne s'affiche.Code:
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:if(m/^\s+\w/) { print $_; }
ou même ça :Code: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:if(m/^\s+\w\s/) { print $_; }