Aller au contenu

Sujets conseillés

Posté (modifié)

(probleme de Regex, résolu)

(j'ai entierement compris le principe; merci regex.com ;))

Modifié par oxyd-x
Posté

C'est du rapide :D

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 ? ^_^

Posté (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é par TheRec
Posté

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

:blush: 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 ?

:blush: 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)

Posté

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>";
?>

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...