probleme regexp - Perl - Programmation
Marsh Posté le 25-03-2008 à 14:12:40
Bonjour,
Bah je pense déjà qu'une bonne séance de relecture "bête" pourrait aider
Il y a un pb de \ au début
Code :
|
ensuite, la partie correspondant à "(nb2 ^ nb3)" est complètement fausse...
Le +(\d+) n'est pas bon non plus, car + est un caractère spécial...
Ensuite, il n'y a aucun \s, donc aucun espace ne sera matché (pas très "souple" )
Marsh Posté le 26-03-2008 à 14:35:48
Citation : |
En fait j'en ai oublié un non? car je veux des "vraies" parenthèses, donc je dois les échapper de cette facon non?
Citation : ensuite, la partie correspondant à "(nb2 ^ nb3)" est complètement fausse... |
Comment le ferais tu toi?
Cdlt
Marsh Posté le 31-03-2008 à 01:00:41
pardon pour ce long silence...
pour l'histoire des parenthèses c'est juste que tu as protégé la mauvaise...
Pour ce qui est du (nb2 ^ nb3), bah déjà, je ne vois pas le caractère ^ dans la regexp, et non plus les \( et \)...
Un des + est mal protégé...
Sinon, je ne veux pas te donner la solution non plus car ce n'est pas une regexp très poussée en terme de complexité...
L'essai erreur sur ce genre de truc marche très bien...
Marsh Posté le 31-03-2008 à 16:50:00
en fait, pour le (nb2 ^ nb3) en fait le nb3 est vraiment a la puissance(comme sur du papier , comme le ²)
Marsh Posté le 31-03-2008 à 17:12:18
/racine\((\d+)\)\*(\d+)²+(\d+)./
En fait voila, la puissance ne change jamais c'est toujours ² et aussi il y a divers mots a la fin de la phrase dont je ne veux pas me préoccuper.
Le point . convient il seul?
Ou dois je mettre une étoile quelque part?
dois je échapper le ² ?
Marsh Posté le 25-03-2008 à 12:25:18
Bonjour,
Mon problème concerne les expressions régulières.
Je récupère une phrase et je souhaiterais en extraire des informations.
Elle est de la forme: racine(nombre1)*(nombre2 puissance nombre 3 )+nombre4
Il me faut les nombres. J'ai donc écrit une regexp qui ne fonctionne pas :x
(Sachant que le nombre 3 est en exposant)
/racine\((\d+\))\*(\d+)(?\d+)+(\d+)/
d'où vient mon erreur?
Merci