regex preg_match

krisvof62
WRInaute discret
WRInaute discret
 
Messages: 50
Inscription: 21 Sep 2007

regex preg_match

Message le Lun Oct 08, 2007 10:44

bonjour j'utilise un un preg_match sur une page pour recupere mon premier lien
Code: Tout sélectionner
preg_match("#<a(.*)</a>#", $html, $out2);
probleme c'est qu'il va me chercher mon dernier lien
donc j'aimerais savoir comment faire pour recuperé le tous premier ?
je pensse que preg_match sortez la premiere occurrence d'une chaine et non la derniere?


dorian53
WRInaute passionné
WRInaute passionné
 
Messages: 2199
Inscription: 10 Avr 2005

Message le Lun Oct 08, 2007 10:55

"#<a(.*)</a>#U" je crois.


Seraph
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 403
Inscription: 2 Avr 2006

Message le Lun Oct 08, 2007 11:17

Comment tu affiches ce que ton preg_match a récupéré ?

krisvof62
WRInaute discret
WRInaute discret
 
Messages: 50
Inscription: 21 Sep 2007

Message le Lun Oct 08, 2007 11:53

Seraph a écrit:Comment tu affiches ce que ton preg_match a récupéré ?

Code: Tout sélectionner
echo '<pre>';
    print_r($out2[1]);
    echo '</pre>';
  echo '<br /><br /><br />';



"#<a(.*)</a>#U"

sa m'affiche le lien que je souhaite mais avec le reste de ma page

krisvof62
WRInaute discret
WRInaute discret
 
Messages: 50
Inscription: 21 Sep 2007

Message le Lun Oct 08, 2007 12:17

c'est bon j'ai regle le probleme :P
Code: Tout sélectionner
"#<a(.*?)</a>#"

sa vient du point d'interogation alors pourquoi je ne sait pas car normalement sa sert a indique l'affichage d'un caracteres de zero a plusieurs fois .
j'ai trouve grace a ce post http://www.developpez.net/forums/showthread.php?p=2552619 donc merci de votre aide et si quelqu'un c est pourquoi ... ?

jeroen
WRInaute passionné
WRInaute passionné
 
Messages: 2455
Inscription: 30 Aoû 2002

Message le Lun Oct 08, 2007 13:12

Modificateur U
Cette option inverse la tendance à la gourmandise des expressions rationnelles. Vous pouvez aussi inverser cette tendance au coup par coup avec un ?
De même, si cette option est activée, le ? rendra gourmand une séquence. Cette option n'est pas compatible avec Perl. Elle peut aussi être mise dans le masque avec l'option ?U dans le pattern ou par un point d'interrogation avant le quantifieur (.e.g. .*?)


http://www.manuelphp.com/php/reference. ... ifiers.php


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités