[Regex] modifier une regex existante

  • Auteur de la discussion Auteur de la discussion Haq
  • Date de début Date de début
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.
 
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...
 
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 ;-)
 
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
 
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