oxyd-x Posté 27 Août 2005 Posté 27 Août 2005 (modifié) (probleme de Regex, résolu) (j'ai entierement compris le principe; merci regex.com ) Modifié 27 Août 2005 par oxyd-x
Dudu Posté 27 Août 2005 Posté 27 Août 2005 C'est du rapide Mais c'eût sympathique de nous donner la solution. Imagine qu'un jour quelqu'un ait un problème d'expressions régulières et qu'il tombe sur ce sujet: il sera certainement content d'avoir la réponse Hum, accessoirement regex.com c'est un hébergeur. T'es sûr de ton adresse ? C'est pas expreg.com plutôt ?
TheRec Posté 27 Août 2005 Posté 27 Août 2005 (modifié) La réponse doit être quelque chose comme ça, ou pas loin : <?php $str = "-[navname(val1)]-[navcodename(val!yx2)]-[navver(val3)]-[platform(val4)]-[java(val5)]-[width(val6)]-[height(val7)]-[reflen(val8)]-[referer(val9)]-[agent(val10)]-[gmt(val11)]-[locale(val12)]-[cookie(val13)]-[actual(val14)]."; preg_match_all("/\([^)^(]+\)/i",$str,$matches); echo "<pre>"; print_r($matches); echo "</pre>";?> J'ai abandonné après avoir vu que la question avait été retirée...il faillait extraire les valeurs de cette chaîne...quelles qu'elle soient... bref j'ai écrit ça à la volée..ça ne couvre pas tous les cas Modifié 27 Août 2005 par TheRec
oxyd-x Posté 27 Août 2005 Auteur Posté 27 Août 2005 Salut, Mais c'eût sympathique de nous donner la solution. Imagine qu'un jour quelqu'un ait un problème d'expressions régulières et qu'il tombe sur ce sujet: il sera certainement content d'avoir la réponse oui, c'est vrai, je voulais la mettre en plus ! c'est juste que tellement préssé de continuer le script, et je voulais pas vous laisser chercher pour "rien". Désolé preg_match_all("|prefs-\[navname\((.*)\)\]-\[navcodename\((.*)\)\]-\[navver\((.*)\)\]-\[platform\((.*)\)\]-\[java\((.*)\)\]-\[width\(([[:digit:]]*)\)\]-\[height\(([[:digit:]]*)\)\]-\[reflen\(([[:digit:]]*)\)\]-\[referer\((.*)\)\]-\[agent\((.*)\)\]-\[gmt\((.*)\)\]-\[locale\((.*)\)\]-\[cookie\((.*)\)\]-\[actual\((.*)\)\].onstats|U", $req, $out, PREG_PATTERN_ORDER); Hum, accessoirement regex.com c'est un hébergeur. T'es sûr de ton adresse ? C'est pas expreg.com plutôt ? oui, c'est vrai, je voulais la mettre en plus ! c'est juste que tellement préssé de continuer le script, et je voulais pas vous laisser chercher pour "rien". Désolé Merci à vous deux ps: TheRec:: ta version est beaucoup plus légere que la mienne en tout cas (j'ai donc pratiquement tout compris aux regex; "" lol)
TheRec Posté 27 Août 2005 Posté 27 Août 2005 Bonjour, de rien. Accessoirementje l'ai juste un peu corrigée ... elle te sort egalement les valeurs sans la parenthèse dans un deuxième tableau si ça te convient mieux...il faut dire que il n'y avait pas de "subpatern" et donc il prenait tout ce qui correspondait à la classe de caractère plus les parenthèese de début et de fin... Un petit usage du mode Ungreedy (/U) et le tour est joué. <?php $str = "-[navname(val1)]-[navcodename(val2)]-[navver(val3)]-[platform(val4)]-[java(val5)]-[width(val6)]-[height(val7)]-[reflen(val8)]-[referer(val9)]-[agent(val10)]-[gmt(val11)]-[locale(val12)]-[cookie(val13)]-[actual(val14)]."; preg_match_all("/\((.*)\)/iU",$str,$matches); echo "<pre>"; print_r($matches); echo "</pre>";?>
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant