regex [PHP] - PHP - Programmation
Marsh Posté le 24-04-2002 à 21:43:04
tu pourrais au moins filer ta regex
je pencherais pour tester que a@a.a se trouve bien à la fin de la chaine en utilisant le $
[a-z0-9](@)[a-z0-9](.)[a-z0-9]$
Marsh Posté le 24-04-2002 à 22:29:37
Voila ma regex
$avant="#([_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+)#si";
$apres='<a href="mailto:\0">\0</a>';
$text=preg_replace($avant,$apres,$text);
Marsh Posté le 24-04-2002 à 22:31:44
Ta methode ne marche qui si a@a.a est situé a la fin de la variable text !
Donc dans se cas sa marche mais il peut y avoir du text deriere a@a.fr donc la sa ne marhce plus !
[jfdsdjhfuetppo]--Message édité par bozocarzu le 24-04-2002 à 22:37:57--[/jfdsdjhfuetppo]
Marsh Posté le 24-04-2002 à 22:50:16
y a un truc que je pige pas : comment ça ce fait que le premier llien est déjà modifié ?
tu devrais les modifier tous avec ta regexp en une seule fois...
Marsh Posté le 24-04-2002 à 22:52:19
Oui le premier lien est deja comme sa d'origine, je veut juste convertir les lien qui ne sont pas converti !!!
Marsh Posté le 24-04-2002 à 22:54:41
en creusant un peu on peut trouver des critères de tri :
il faut que a@a.fr ne soit pas précédé de mailto: (lien déjà transformé)
il ne doit pas se trouver entre > et </ (déjà des tags HTML)
ça irait pas avec ça ?
Marsh Posté le 24-04-2002 à 23:03:21
Bon j'avoue, j'ai essayer de le faire avec des restriction mais je ne suis pas arrivé a chaque fois il ne me trouve plsu ma chaine de charactere a@a.a
Tu peut essayer de me le faire, tu peut prendre en base de regex : [a-z0-9]@[a-z0-9] sa simplifiras le code
[jfdsdjhfuetppo]--Message édité par bozocarzu le 24-04-2002 à 23:04:16--[/jfdsdjhfuetppo]
Marsh Posté le 24-04-2002 à 23:18:25
([^mailto:|>])(([a-z0-9_]|\\-|\\.)+@([^[:space
:]]*)([[:alnum:]-])\.([^[:space:]]*)([[:alnum:]-]
))([^</])
à tester... j'ai peut être merdé la syntaxe au début
une chaine ne commençant pas par mailto: ou > contenant a@a.a (ou autre) et ne finissant pas par </
[jfdsdjhfuetppo]--Message édité par Sh@rdar le 24-04-2002 à 23:21:01--[/jfdsdjhfuetppo]
Marsh Posté le 25-04-2002 à 01:04:50
J'ai trouver, enfin j'ai recopier sur un script !!
$avant="#([\n ])([a-z0-9\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)?[\w]+)#i";
$apres='\\1<a href="mailto:\\2@\\3">\\2@\\3</a>';
$text=preg_replace($avant,$apres,$text);
Marsh Posté le 24-04-2002 à 21:11:54
J'ai un petit probleme avec les regex
J'ai une variable : $text="Cliquer <a href=\"mailto:a@a.fr\">ici</a>, ou envoyer la : a@a.fr";
En vert le lien est deja fais donc on n'y touche pas mais je veut creer un lien sur le rouge !!
Donc je fais mon petit regex qui remplace a@a.fr par <a href="mailto:a@a.fr>a@a.fr</a> !!
Mais le probleme c'est que ma regex remplace TOUS les a@a.fr meme celui qui est dans le vert !!!
Donc je me retrouve avec sa :
$text="Cliquer <a href=\"mailto:<a href="mailto:a@a.fr>a@a.fr</a>\">ici</a>, ou envoyer la : <a href="mailto:a@a.fr>a@a.fr</a>";
Sa va pas du tous !!
[jfdsdjhfuetppo]--Message édité par bozocarzu le 24-04-2002 à 21:12:36--[/jfdsdjhfuetppo]