stbfr
Messages postés2Date d'inscriptionvendredi 20 janvier 2012StatutMembreDernière intervention 9 février 2012
-
30 janv. 2012 à 20:51
stbfr
Messages postés2Date d'inscriptionvendredi 20 janvier 2012StatutMembreDernière intervention 9 février 2012
-
9 févr. 2012 à 16:55
Bonjour,
Je cale après une longue recherche sur le problème suivant :
je veux savoir à l'aide d'une Regex si dans une string j'ai une variable mais pas une fonction :
"sin(90)*3" ne me renverrait pas de match
alors que "xyy+3" me renverrait match OK.
Pour 1 seul caractère avant la parenthèse ^\w(?!\() fonctionne parfaitement mais pour plusieurs caractères je cale car ^\w+(?!\() ne fonctionne pas, il matche tous les caractères sauf le dernier situé juste avant la "(",
Que faire ???
Merci d'avance si quelqu'un peut me proposer une solution mais peut être qu'il n'y en a pas et qu'il faut passer par un if ??
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 9 févr. 2012 à 08:24
^(?!\w+\()\w+
en gros, ton assertion etait bonne, mais pas complete.
tu dis :
un a n caractère alphanum, suivi de quelque chose (non matché) qui ne soit pas un (
du coup, pour le sin(90)
il retourne si
en faisant ainsi :
^(?!\w+\()\w+
ton assertion est de dire : un a n alphanum, non suivi d'une parenthese
ainsi, le sin sera ejecté dès le départ
et ton match \w+
prendra bien les variables
stbfr
Messages postés2Date d'inscriptionvendredi 20 janvier 2012StatutMembreDernière intervention 9 février 2012 9 févr. 2012 à 16:55
Merci beaucoup pour ta réponse !!!
J'ai passé bcp de temps à y réfléchir, persuadé qu'il y avait une solution sans la trouver. Les regexp sont super puissantes mais pas forcément évidentes !!! Encore merci !