Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/09/2006, 08h26   #1
Membre habitué
 
Avatar de alexmorel
 
Inscription : septembre 2003
Messages : 196
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : septembre 2003
Messages : 196
Points : 120
Points : 120
Envoyer un message via MSN à alexmorel
Par défaut Problème de fonction preg_replace

Bonjours,


J'ai un problème avec la fonction preg_replace

remplacer
Code :
1
2
 
<a href="http://www.google.ch" TARGET="_blank">Google</a>
par
Code :
1
2
 
[#url=http://www.google.ch]Google[#url]
avec
Code :
1
2
 
$texte=preg_replace('`(\<a\s+href="(.*?)"([^\'"]*)\s+>(.*?)</a>)`i', '<a href="http://$1" target="_blank">$2</a> ', $texte);
Mais je ne vois pas la faute là ?

Merci d'avance
__________________
A.Morel
alexmorel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2006, 11h13   #2
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Votre expression régulière ne correspond pas au lien donné en exemple. En effet, l'attribut supplémentaire TARGET ne matche pas cette partie de l'expression : ([^\'"]*) à cause de sa valeur (délimitée par les doubles-quotes). S'orienter plutôt vers ([^>]) ?

Je remarque également l'échapement du caractère < qui n'est pas utile.


Julp.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2006, 12h28   #3
Membre émérite
 
Inscription : mai 2004
Messages : 709
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : mai 2004
Messages : 709
Points : 852
Points : 852
Tu as déjà posté sur le sujet il me semble.
http://www.developpez.net/forums/sho...d.php?t=214430

Mais tu as déformé la solution donnée.

Ceci est une variante. Solution:
Code :
#<img\s+src=(?:"|\')([^\'"]*)(?:"|\')[^>]*>#i
Avec la capture en $1 (les deux autres parenthèses sont non capturantes)
__________________
:q :q! :wq :w :w! :wq! :quit :quit! :help help helpquit quit quithelp
:quitplease :quitnow :leave :shit ^X^C ^C ^D ^Z ^Q QUITDAMMIT
Jabber: ripat at im.apinc.org
ripat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2006, 17h48   #4
Membre habitué
 
Avatar de alexmorel
 
Inscription : septembre 2003
Messages : 196
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : septembre 2003
Messages : 196
Points : 120
Points : 120
Envoyer un message via MSN à alexmorel
Merci julp

Code :
1
2
$texte=preg_replace('`(\<a\s+href="(.*?)"([^>]*>)(.*?)</a>)`i', '[#url=$2]$4[/#url] ', $texte);
C'étais ça !
__________________
A.Morel
alexmorel est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h12.


 
 
 
 
Partenaires

Hébergement Web