Bonjour à tous,
je bloque sur une expression régulière depuis quelques heures, mais là je donne ma langue au chat.
Je vous explique mon problème.
Je dois, dans un texte, retrouver toutes les occurences d'un mot. Jusque là rien de bien compliqué.
Mais il y a plusieurs règles qui entrent en jeu pour que le mot soit matché.
Le mot ne peut en aucun cas être entouré d'une balise <a>. Le mot ne peux en aucun cas être précédé/suivi d'un caractère alphanumerique.
Voici un exemple de ce qui doit matcher et de ce qui ne doit pas matcher pour la chaîne "abc" :
<a>abc</a> -> 0
<a>abcde</a> -> 0
xyzabc123 -> 0
abc -> 1
xyz abc 123 -> 1
<p>abc</p> -> 1
<p>abc abc</p> -> 1
<p>xyz abc 123</p> -> 1 |
Mon problème vient du fait que je n'arrive pas à mettre en musique ces deux conditions...
J'avais à la base écrit ceci comme regexp :
Code :
- $pattern='/(<a[^>]*> )?(abc)(<\/a> )?/i';
|
Mais avec ce pattern ci, les chaines suivantes vont matcher :
xyzabc123
<p>xyzabc123</p> |
Donc voilà si vous avez une idée, votre aide me serait vraiment très précieuse...
Un grand merci d'avance à tout ceux qui tenteront de m'aider
V.
---------------
Humour :: http://www.chadechire.com