Regex?

cs_enda Messages postés 11 Date d'inscription samedi 25 mai 2002 Statut Membre Dernière intervention 1 novembre 2004 - 1 juin 2002 à 14:06
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 - 1 juin 2002 à 17:26
Bonjour,
une petite question de plus (merci a ceux qui repondent :) )
Concernant les regex, je suis un peu desarsonné en coldfusion, auriez vous une doc assez claire à me proposer?
Ou bien m'expliquer sur l'exemple suivant;
je cherches a utiliser REFindnocase sur une variable, sachant que toutes les occurences m'interessent?
En fait je supposes que cela donne qqch du genre:
<cfset mavar=REFindnocase("mon critere","machaine",??nombre d'ocurences??,??True??>
sur le principe en mettant un nombre plus large que les situations envisagée, cela devrait etre bon, mais au moment de l'afficher... probleme..
à quoi correspond la variable? à un tableau? j'ai testé le principe du tableau en php (soit mavar[1] par exemple) mais cela ne fonctionne pas non plus??

Merci d'avance

4 réponses

cs_enda Messages postés 11 Date d'inscription samedi 25 mai 2002 Statut Membre Dernière intervention 1 novembre 2004
1 juin 2002 à 15:22
Autant pour moi..
la reponse est aussi bete que: REFind sert uniquement à valider la presence d'une chaine... pas a la renvoyer, meme partiellement, ce qui est le boulot de REReplace, j'oublies qq peu mes bases....
0
cs_bastoun Messages postés 164 Date d'inscription dimanche 1 octobre 2000 Statut Membre Dernière intervention 23 mars 2007 1
1 juin 2002 à 15:25
Va voir l'article suivant : http://www.cfmfrance.com/article.aspx?Val=50
J'y ai laissé une note sur les regexp (et sur l'utilisation deREReplace, pas tout à fait comme ReFind)

Voilà.. sinon dans ton cas :

Le nombre que tu indiques ne correspond pas à un nombre d'occurences, mais à quelle position tu veux démarrer ta recherche dans la chaine de caractère.
Si tu veux trouver toutes les occurence, il va falloir boucler avec une position de départ supérieure à chaque fois.

Le "True" ou "False" : "True" indique que tu veux retourner un tableau indiquant à quel endroit l'occurence a été trouvée, et sa longueur (bien utile si tu utilise les wildcards)...Dans ce cas, ta variable mavar devient une structure(tableau associatif), contenant elle même 2 tableaux à une dimension et un seul élément (pos et len), que tu peux consulter de la façon suivante : mavar.pos[1] et mavar.len[1]
Mais cela ne marche que pour la première occurence. A nouveau, si tu veux pouvoir trouver toutes les occurences et avoir un tableau complet, il faut boucler et programmer ça toi même..

Si tu mets "False", tu retournes dans ta variable juste la position à laquelle tu as trouvé ce que tu recherchais

Note : quand tu ne sait pas ce que contient ta variable, tu peux utiliser cfdump pour en lire le contenu. Trés utile pr débugguer
par exemple essaie <cfdump var="#mavar#"> , après ta recherche..
0
cs_enda Messages postés 11 Date d'inscription samedi 25 mai 2002 Statut Membre Dernière intervention 1 novembre 2004
1 juin 2002 à 15:30
Merci beaucoup, je vois que j'ai fais pas mal de confusions concernant REFind...
Il va falloir que je repotasses tout ca.. je vais d'ailleur de ce pas lire l'article.
Je crois que le cfdump peut m'etre très utile aussi..
merci encore
0
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 20
1 juin 2002 à 17:26
Pour le cfdump version de CF 5 minimun ou j'ai un cf_dump en customtag pour les versions antérieures...
Pour connaitre le nombre d'occurence, la aussi Custom tags mais à la mimine tio tout seul car moi j'en ai jamais vu d'intéressant en perf...
S.
0
Rejoignez-nous