Regex particulière ? (newbie inside) - Perl - Programmation
Marsh Posté le 14-03-2007 à 21:17:20
Deux liens très utiles :
En général, http://perldoc.perl.org contient tout ce qu'il est nécessaire de savoir sur le langage.
Un autre lien utile (mais hors-sujet ici), c'est celui de la bibliothèque des modules PERL, CPAN : http://search.cpan.org/
Et pour répondre à ta question, tu peux faire une boucle pour récupérer n pourcentages entre parenthèses, il te suffira de récupérer le nombre d'occurrences adéquat :
while ( m/\((\d+)%\)/g ) |
(je n'ai pas testé mais ça devrait fonctionner... j'ai pris pour hypothèse que la ligne à tester était stockée dans $_)
Marsh Posté le 15-03-2007 à 22:29:26
Voila j'ai fini par trouver :
# output:Used: 2106 MB (2%) Free: 74202 MB (97%)
/output:Used: (\d+) MB \((\d+)\%\)/
# output:Mem: 160 MB (62%) / 254 MB (37%) Paged Mem: 180 MB (28%) / 629 MB (71%)
/output:Mem: (\d+) MB \((\d+)\%\) /
(en gras les valeurs que je récupère).
Je sais pas si c'est optimisé, mais sa marche, et je m'en contente !
merci !
Marsh Posté le 15-03-2007 à 22:34:00
Et tu as pensé à regarder la réponse que je t'ai donnée ?
Marsh Posté le 19-03-2007 à 10:52:43
Oui oui, c'est grace a sa que j'ai pu comprendre certaines syntaxes, meme si l'anglais technique... beurk
encore merci
Marsh Posté le 19-03-2007 à 11:16:42
ReplyMarsh Posté le 20-03-2007 à 08:44:52
sebus--74 a écrit : sa l'est pas encore ! lol |
euh non, pas lol du tout ... Taz a on ne peut plus raison, toutes les docs sont en anglais et c'est pas près de changer
Marsh Posté le 14-03-2007 à 20:31:25
Bonjour, je doit adapter des expressions régulières pour pouvoir stocker des valeurs dans une base de données. Mais en regardant sur internet, et avec toute la volonté qu j'y met, je n'arrive pas a bien comprendre la complexité du truc ! surtout que je n'ai malheureusement pas beaucoup de temps à y consacrer (une démo dans les prochains jours ).
Alors je viens faire appel a votre aide : voila trois chaines en exemple, la première marche, la seconde j'ai essayé quelque chose, la troisième je n'y arrive pas :
Pour récupérer 0% et 0,00 :
# output: PING OK - Packet loss = 0%, RTA = 0.00 ms
/output: PING.*?(\d+)%.+?([.\d]+)\sms/
Pour récupérer 2 :
# output:Used: 2106 MB (2%) Free: 74202 MB (97%)
/output:Used.*?(\d+).*/
Pour récupérer 62 :
# output:Mem: 160 MB (62%) / 254 MB (37%) Paged Mem: 180 MB (28%) / 629 MB (71%)
/output:Mem:.*?\((\d+)\%\).*\/.*\(.* ...
Voila si vous avez une petite idée de comment pouvoir m'aider ou juste m'expliquer, toute aide est la bienvenue