Expressions régulières... je bloque. :( [Résolu] - PHP - Programmation
Marsh Posté le 26-08-2009 à 23:26:12
Vitaminae a écrit :
|
Normal, ces chaines remplissent les conditions énoncées :
Citation : 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. |
T'as du oublier des conditions... Pour moi, d'après ce que tu décris, ça marche
Marsh Posté le 27-08-2009 à 10:14:23
theredled a écrit :
|
Salut et merci pour ta réponse.
Non vu que il y a des lettres devant et derrière la chaîne abc et ca match quand même hors je ne veux pas que ca matche et je n'arrive pas a faire cohabiter les deux conditions (celle là et celle de la balise <a> ). C justement ca mon soucis
Donc :
azabcde ne doit pas matcher (or la ca matche)
abc doit matcher
en gros ca doit matcher que si le mot est vraiment un mot et pas un mot composé...
V.
Marsh Posté le 27-08-2009 à 10:20:46
Vitaminae a écrit : |
Concrètement, le mot est prévu à l'avance, et c'est toujours "abc" ?
Marsh Posté le 27-08-2009 à 10:47:42
On va dire que oui car le pattern que je génère, c'est avec une variable c'est pour ca que dans mon exemple j'ai mis "abc".
en fait j'ai une liste de mots et je génère le pattern à utiliser pour chaque mots.
Pour simplifier mon explication j'ai donc mis abc car c pas le soucis
Merci à toi.
V.
Marsh Posté le 27-08-2009 à 10:54:18
J'ai pas trop le temps, mais tu peux p-e aller voir du côté des assertions lookahead/lookbehind
http://www.regular-expressions.info/lookaround.html
Marsh Posté le 27-08-2009 à 11:37:47
Bingo. Je ne connaissais pas les assertions, j'ai résolu mon problème, merci beaucoup !!!
Si ça peut aider quelqu'un un jour :
Code :
|
Marsh Posté le 27-08-2009 à 12:13:18
Ah bah nickel
Marsh Posté le 24-08-2009 à 15:28:36
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 :
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.
Message édité par Vitaminae le 09-12-2009 à 12:18:08
---------------
Humour :: http://www.chadechire.com