Aide - Recherche - Membres - Calendrier
Version complète : Regex
La Communauté TitaXium > Service Communication > Espace Developpement
Nokilling
Bonsoir tout le monde smile.gif

Voila, je suis actuellement en train d'essayer d'apprendre à utiliser les Regex ( jusqu'à présent je ne les avais pas utilisé, mais là, pour une des spec d'un projet je doit les utiliser smile.gif )

Donc, en faites je cherche dans le contenu d'un string toutes les chaines du types : <a href="team.php?team=1&match=X">Resultat</a>

Et donc moi je voudrais je voudrais récupérer ce qu'il y a de soulignés, j'essaye donc avec cette regex qui est généré automatiquement grâce au php :
Code
`<a href="team.php?team=1&match=[^<]+">[^<]+</a>`


Cependant, le problème c'est qu'il ne me retourne qu'un tableau vide, alors qu'il y a bien des liens de ce genre dans ma chaine :'(

Merci d'avance smile.gif

PS : Ici X est toujours un entier, mais il peut changer selon les endroits smile.gif
K20
Essaye ça :

Code
`<a href="team.php\?team=1&match=[0-9]+">(?*)</a>`

Les parenthèses servent de parenthèses capturantes, je ne sais pas quel langage tu utilises ni quelle fonctione tu utilise smile.gif
Nokilling
Ok, merci j'essaye ça dès que possible smile.gif

PS : J'utilise les regex en php dans ce cas smile.gif
K20
Ouai ba tu utilises cette regex avec preg_replace smile.gif
Nokilling
Bonsoir smile.gif

Voila, j'ai pu enfin tester la regex, mais j'ai un problème, elle n'a pas l'air de marcher :'(

Car j'utilise toujours le preg_match_all car je voudrais récupérer le contenu, et à chaque fois je fais un var_dump du contenu du tableau qui m'est retourné, et il est vide :s

Je vient de faire un test en utilisant ça :
Code
$content = "<a href='animebygenre.php?genre=1'>Test</a>";
$regex = "`team.php?team=1&match=[0-9]+'>[^<]+</a>`";
preg_match($regex, $content, $res);
print_r($res);


Et le résultat que j'ai est : Array ( )

Voila, merci d'avance smile.gif
K20
Heu c'est pas étonnant tongue.gif

Comment veux-tu que ça matche ^^

L'url n'a strictement rien avoir avec la regex smile.gif
Dit moi exactement le type d'url que tu peux avoir et je te fais la regex wink.gif

Sinon :
Code
$content = "<a href='animebygenre.php?genre=1'>Test</a>";
        $regex = "#<a href='.*\.php\?.*=[0-9]+'>(.+)</a>#";
        preg_match($regex, $content, $res);
        print_r($res);


Une regex qui match tout type d'adresse avec un fichier php, un paramètre GET qui possède une valeur numérique. Je pense que c'est ça que tu voulais smile.gif
ça fonctionne très bien, tu peux voir le résultat ici
Nokilling
Là je me suis trompé pour l'url ^^

Là c'est pour un autre projet qui l'utilisera peut être dans le futur, mais pour le moment mes url sont bien comme je l'ai mis dans le premier post :s
K20
Suffit de modif un peu :

Code
$regex = "#<a href='team\.php\?team=1&match=[0-9]+'>(.+)</a>#";
Nokilling
Citation (K20 @ mercredi 17 octobre 2007 à 12h06) *
Suffit de modif un peu :

Code
$regex = "#<a href='team\.php\?team=1&match=[0-9]+'>(.+)</a>#";



Ok, ba là je suis en cours, donc je ne pourrais que tester dans la soirée smile.gif

Merci pour ton aide dans tout les cas smile.gif

EDIT : Merci beaucoup, la regex marche super bien, il me trouve bien des correspondance biggrin.gif
Mais là je vient de voir qu'il me prend tous le contenu, c'est à dire qu'il me prend tout le lien, mai s pas le texte du lien smile.gif

EDIT 2 : Voila j'ai réussi à récuperer que le texte, j'avais fait une ptite erreur smile.gif

EDIT 3 : Sinon juste une petite question, là je suis en train d'utiliser les regex pour récupérer des informations dans un tableau, donc est-ce qu'avant un / dans la regex il faut mettre un \ ou pas ?

Merci smile.gif

Merci K20 pour ton aide smile.gif
K20
ça dépend, si tu utilises / comme délimiteur de ta regex oui sinon non smile.gif
c'est le \ qu'il faut échaper wink.gif

Pour ma regex, c'est la case 1 du tableau qui contient le résultat, la case 0 contient toute la string qui est matchée wink.gif

Si tu as d'autres questions sur les regex n'hésitent pas smile.gif y a un an j'y comprenais rien du tout ^^ merci les cours et la création de mon bbcode biggrin.gif
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'informations, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2010 Invision Power Services, Inc.