Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 10-04-2009 18:01:11

bart
Nouveau membre
Date d'inscription: 10-04-2009
Messages: 2

[Zend Router] Problème de négation dans les expressions régulières

Bonsoir,

Depuis deux jours je lutte avec la négation des chemins dans le Zend_Controller_Router_Route_Regex. Le cas problématique est:

$tagRoute = new Zend_Controller_Router_Route_Regex('([^tags][a-z0-9]+)', array('controller' => 'tag', 'action' => 'afficher'), array(1 => 'nom' ), '%s');
                                             
$router->addRoute('tag2', $tagRoute);   


Voilà. Je n'ai pas trouvé comment nier dans les expressions régulières de PHP une phrase complète (dans mon cas, ce sera "tags"). Dans mon exemple, le router marche pour les liens sans t, a, g, s. Donc, il nie seulement les lettres. J'ai essayé plusieurs solutions (avec apostrophes, guillemets, points d'exclamation) mais rien n'allait.

Pourriez-vous m'aider à résoudre ce problème ? Merci d'avance pour vos conseils.

Hors ligne

 

#2 11-04-2009 20:46:22

mdelanno
Membre
Lieu: Nord
Date d'inscription: 26-08-2007
Messages: 90
Site web

Re: [Zend Router] Problème de négation dans les expressions régulières

Je pense que le plus simple c'est d'enregistrer une route tags avant ta route tagRoute qui va intercepter les urls commençant par tags.

Hors ligne

 

#3 11-04-2009 21:23:53

mdelanno
Membre
Lieu: Nord
Date d'inscription: 26-08-2007
Messages: 90
Site web

Re: [Zend Router] Problème de négation dans les expressions régulières

Sinon tu peux essayer

Code:

(?:(?!tags).)+

(Mais ne me demande pas de te l'expliquer)

Dernière modification par mdelanno (11-04-2009 21:24:45)

Hors ligne

 

#4 13-04-2009 13:55:55

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: [Zend Router] Problème de négation dans les expressions régulières

[^(tag)]
tout sauf tag

tu peux trouver des infos sur les regexp ici
http://www.expreg.com/
http://www.google.fr/codesearch?q=regexp (code serarche de google donne accès à es extrait de code sur tout et n'importe quoi
et enfin http://www.regular-expressions.info/

A+JYT

Hors ligne

 

#5 18-04-2009 11:15:10

bart
Nouveau membre
Date d'inscription: 10-04-2009
Messages: 2

Re: [Zend Router] Problème de négation dans les expressions régulières

mdelanno a écrit:

Sinon tu peux essayer

Code:

(?:(?!tags).)+

(Mais ne me demande pas de te l'expliquer)

Merci. Ta réponse fonctionne bien. Pour les futurs, si l'on veut nier deux phrases:

(?:(?!tags)(?!communaute))

@sekaijin, merci pour les liens et la réponse.

Dernière modification par bart (18-04-2009 11:15:31)

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages