Interdiction d'une chaine dans les regexp

psykocrash Messages postés 240 Date d'inscription vendredi 14 juin 2002 Statut Membre Dernière intervention 17 mars 2009 - 13 mai 2006 à 02:00
smain46 Messages postés 5 Date d'inscription dimanche 12 mars 2006 Statut Membre Dernière intervention 2 mars 2010 - 2 mars 2010 à 10:24
Salut,
Plus de 3h heures non stop que je planche sur ce problème... pffff !
Je voudrais savoir comment interdire une chaine de caractères dans une expression régulière (preg_match_all).
Attention, il ne s'agit pas de faire [^salut] car je ne veux pas interdire les lettres 's', 'a', 'l', 'u', et 't' mais la suite de lettres 'salut'.

L'objectif est d'arriver à trouver, par exemple, dans :
"a salut b est différent de a lolo b"
" lolo " et non pas " salut ".

Merci d'avance ,
Psykocrash.

8 réponses

coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
13 mai 2006 à 14:38
Salut,

envoi la preg que tu as essayé ?

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
0
psykocrash Messages postés 240 Date d'inscription vendredi 14 juin 2002 Statut Membre Dernière intervention 17 mars 2009
13 mai 2006 à 14:43
"a(.*)b" qui prenait n'importe quoi au milieu est devenu "a[^(salut)]+b" mais là, ça ne marche pas. La solution réside dans la manière d'interdire une suite de caractères et non pas les caractères eux mêmes. Il faut arriver à interdire "salut" mais que "slaut" ne soit pas interdit. Si vous savez comment le faire, aidez moi svp !!!!
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
13 mai 2006 à 14:49
Salut,

"a^(salut)+b"

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
0
psykocrash Messages postés 240 Date d'inscription vendredi 14 juin 2002 Statut Membre Dernière intervention 17 mars 2009
13 mai 2006 à 15:01
Warning: preg_match_all() [function.preg-match-all]: Delimiter must not be alphanumeric or backslash in ...
Et en plus ça marche pas
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Toya78 Messages postés 44 Date d'inscription vendredi 1 septembre 2006 Statut Membre Dernière intervention 23 août 2008
17 févr. 2007 à 00:11
J'ai exactement le même problème (je veux interdire "mailto:" en début de lien).
Si quelqu'un a la solution...
0
smain46 Messages postés 5 Date d'inscription dimanche 12 mars 2006 Statut Membre Dernière intervention 2 mars 2010 8
1 mars 2010 à 12:14
2 ans plus tard..

quelqu'un a trouvé une solution ?
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
1 mars 2010 à 21:38
Et si tu créais un nouveau post en expliquant clairement ton problème plutôt que reposter sur un thread de 4 ans ?



Kohntark -
0
smain46 Messages postés 5 Date d'inscription dimanche 12 mars 2006 Statut Membre Dernière intervention 2 mars 2010 8
2 mars 2010 à 10:24
Les autres forums râles quand on crée des posts qui existent déjà, faudrait savoir...

J'ai résolu le problème avec la regex : ^((?!^salut$).)*$ mais mon objectif final est d'utiliser cette regex comme pattern de restriction dans un xml schéma et là cela plante. C'est pas un forum xml-schéma ici donc je ne m'attend pas à ce que vous répondiez, je poste juste la regex ^((?!^salut$).)*$ si quelqu'un passe par là et en a besoin.

Merci.
0
Rejoignez-nous