Aller au contenu

Un pro du regex ?


oxyd-x

Sujets conseillés

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

Lien vers le commentaire
Partager sur d’autres sites

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
Lien vers le commentaire
Partager sur d’autres sites

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)

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

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



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