Bonsoir,
Suite à un précédent post, j'ai bien avancé sur mes expressions régulières. C'est magique, merci !
Il reste une chose que je n'arrive pas à résoudre :
J'ai cette url <code>http://www.stereoptik.com/calendrier/[category(ie) ou list(e)]/[n'importe quoi sauf "dark-circus"]/</code>
J'essaie de la cibler avec cette expression :
<code>http:\/\/www[\w.]+\/calendrier\/(categor[a-z]{1,2}|list[a-z]{0,1})\/^(dark-circus)</code>
mais ça ne fonctionne pas. Vous pouvez m'aider à trouver pourquoi ?

En fait, pour être plus clair je voudrais que ça match si mon url est : <code>http://www.stereoptik.com/calendrier/liste/n'importe-quelle-suite</code> et pas si c'est : <code>http://www.stereoptik.com/calendrier/liste/dark-circus</code>

Merci beaucoup

6 réponses


SLK
Réponse acceptée

peut-être avec ça :

http:\/\/www\.stereoptik\.com\/calendrier\/(categor(y|ie)|liste?)\/((?!dark-circus).*)

Je me rend compte aussi que plus haut j'ai écris "categories", mais j'imagine que c'était "categorie" (sans "s") que tu voulais

Salut,

pour interdire un mot, tu peux le mettre entre parenthèses, et mettre "?!" avant le mot (il me semble...).

Je n'ai pas compris pourquoi tu utilises [\w.], je l'ai enlevé mais dis moi tu en as vraiment besoin.
Rappelons que [\w.] est un racourcis pour [a-zA-Z0-9_]

Essaie ça pour voir :

http:\/\/www\.stereoptik\.com\/calendrier\/liste\/(?!dark-circus)

J'ai du mal aussi à comprendre ça (categor[a-z]{1,2}|list[a-z]{0,1}
Moi de ce que j'ai supposé, c'est qu'il PEUT y avoir écrit :
category OU categories OU list OU liste
Si c'est bien ça, essaie ça pour voir :

http:\/\/www\.stereoptik\.com\/calendrier\/(categor(y|ie)|liste?)\/(?!dark-circus)
hatfab
Auteur

Salut,
Je n'ai pas compris pourquoi tu utilises [\w.]
En effet tu as raison, je peux utiliser directement l'url puique cette partie ne change pas.
J'ai du mal aussi à comprendre ça (categor[a-z]{1,2}|list[a-z]{0,1}
C'est exactement ça, il PEUT y avoir écrit : category OU categories OU list OU liste, merci pour cette optimisation.

Ton expression fonctionne, dans le sens ou elle ne match pas avec <code>http://www.stereoptik.com/calendrier/category/dark-circus/</code> en revanche, je voudrais qu'elle match la totalité de l'url si celle-ci est <code>http://www.stereoptik.com/calendrier/category/n'importe-quoi-d'autre-blablabla/</code> pour l'instant elle ne match que <code>http://www.stereoptik.com/calendrier/category/</code>

Merci beaucoup de ton aide

Je pense que ça peut marcher du coup si tu rajoute un paramètre pour dire “tout”

http:\/\/www\.stereoptik\.com\/calendrier\/(categor(y|ie)|liste?)\/(?!dark-circus)([a-zA-Z0-9\-_])
hatfab
Auteur

Et non, du coup ça marche aussi avec "dark-circus"

hatfab
Auteur

Super, ça marche comme ça !
Merci beaucoup