[Regex] modifier une regex existante

  • Auteur de la discussion Auteur de la discussion Haq
  • Date de début Date de début
H
Haq
Guest
Bonjour,

J'utilise cette regex pour rendre les liens cliquables sur mes forums:
Code:
$chaine = eregi_replace("([[:alnum:]]+)://([^[:space:]]*)([[:alnum:]#?/&=])",
"<A HREF=\"\\1://\\2\\3\" TARGET=\"_blank\">\\1://\\2\\3</A>",$chaine);

Je cherche à modifier ce code pour que la règle ne s'applique pas si l'url contient un mot spécifique.

Ca ne doit pas être bien compliqué (un truc du genre [^motbanni] à ajouter quelque part ?), mais je n'y arrive pas.

Merci d'avance pour tout coup de main ;-)
aK.
 
WRInaute impliqué
corrigez moi si je dis une connerie, mais il me semble que c'est justement la chose qu'on ne peut pas faire avec des regex

donc avant ta regex tu fais un simple test pour savoir si "motbanni" est inclus ou pas dans la chaine...
 
H
Haq
Guest
Oui, mais j'aimerais bien que si ma chaîne contient une url avec mot banni et une sans mot banni, les 2 chaînes soient traitées différemment... donc un test n'est pas possible ;-)
 
WRInaute occasionnel
et traité ta chaine avec une 2eme regex plutot que de compliqué encore plus la premiere, ca serait aps mieux? (et surtout plus lisible dans 3 mois quand tu essayera de comprendre a nouveau le regexp :-P) ...

moi je dit ca, parce que le plus simple est parfois .. plus simple :-D
 
H
Haq
Guest
zehunter a dit:
et traité ta chaine avec une 2eme regex plutot que de compliqué encore plus la premiere, ca serait aps mieux? (et surtout plus lisible dans 3 mois quand tu essayera de comprendre a nouveau le regexp :-P) ...

Pas con ! Je testerai ça... enfin, ça inverse le problème... il faudrait que j'arrive à trouver les url contenant le fameux mot banni.
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut