[php] Le char avant une regexp...
BlueWolf²
-
BlueWolf² -
BlueWolf² -
Bonjour à tous !
Bon, alors, je présent mon souci, qui ne devrait pas en être un pour les habitués (je débute en ce qui concerne les expressions régulières).
Je souhaite remplacer un pattern par un autre (jusque-là, je m'en sors à peu près), sauf s'il est précédé d'un quote, et je souhaite également que la chaîne s'arrête si jamais elle rencontre un quote (ça, bizarrement, ça paraît simple au premier abord, mais je n'y suis pas arrivé).
Merci par avance...
BW²
Bon, alors, je présent mon souci, qui ne devrait pas en être un pour les habitués (je débute en ce qui concerne les expressions régulières).
Je souhaite remplacer un pattern par un autre (jusque-là, je m'en sors à peu près), sauf s'il est précédé d'un quote, et je souhaite également que la chaîne s'arrête si jamais elle rencontre un quote (ça, bizarrement, ça paraît simple au premier abord, mais je n'y suis pas arrivé).
Merci par avance...
BW²
A voir également:
- [php] Le char avant une regexp...
- Easy php - Télécharger - Divers Web & Internet
- Avant browser - Télécharger - Navigateurs
- Comment remettre ma page d'accueil comme avant - Guide
- Comment revenir à ma page d'accueil "google.fr" ? ✓ - Forum Google Chrome
- Copain d'avant - Forum Réseaux sociaux
6 réponses
Pour l'instant, je fais un :
ereg_replace("(http://)((:punct:|:alnum:)*)", "<a href=\"\\0\" target=\"_blank\">\\0</a>", $data);
Le but est apparent : placer automatiquement les url par des liens. L'ennui, c'est qu'il m'arrive d'utiliser des url pour afficher des images distantes (<img src="http://trucbidule") et que du coup, le lien devient indésirable.
ereg_replace("(http://)((:punct:|:alnum:)*)", "<a href=\"\\0\" target=\"_blank\">\\0</a>", $data);
Le but est apparent : placer automatiquement les url par des liens. L'ennui, c'est qu'il m'arrive d'utiliser des url pour afficher des images distantes (<img src="http://trucbidule") et que du coup, le lien devient indésirable.
Salut,
Il suffit d'utiliser une assertion arrière pour détecter si l'url est précédée d'un guillemet.
Il suffit d'utiliser une assertion arrière pour détecter si l'url est précédée d'un guillemet.
$chaine = preg_replace('#(?<!")http://(?:www\.)[a-z0-9_%/\?\-+&;]{3,}#', '<a href="$0">$0</a>', $chaine);
Merci beaucoup !
Mais par contre, avec le modèle que j'ai actuellement, comment puis-je m'assurer que la chaîne s'arrête pile avant un caractère spécifié (comme un autre quote, par exemple)...
Mais par contre, avec le modèle que j'ai actuellement, comment puis-je m'assurer que la chaîne s'arrête pile avant un caractère spécifié (comme un autre quote, par exemple)...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Je n'ai pas bien compris ce que tu veux faire.
Sinon, au lieu d'utiliser une assertion, on peut aussi regarder si l'url est entourée d'espaces blancs.
Sinon, au lieu d'utiliser une assertion, on peut aussi regarder si l'url est entourée d'espaces blancs.
$chaine = preg_replace('#(\s|^)(http://(?:www\.)?[a-z0-9_%/.?\-+&;]{3,})(\s|$)#U', '$1<a href="$2">$2</a>$3', $chaine);