Regexp différence entre /^app[\/]jquery.js/ et /^app/jquery.js/

7 réponses
Avatar
Une Bévue
Bonjour,

Si je teste mes expressions :
/^app[\\\/]jquery\.js/
et
/^app\/jquery\.js/

avec la string "app/jquery.js" ou "app/autre-chose.js"
j'obtiens bien match dans le premier cas et pas de match dans le second
quelque soit l'expression régulière utilisée.

du coup je ne comprend pas ce que pourrait apporter [\\\/] à la place du
bêbête \/...

quelqu'un aurait des lumières ?

7 réponses

Avatar
Gloops
Le 05/08/2016 à 17:58, Une Bévue a écrit :
Bonjour,
Si je teste mes expressions :
/^app[/]jquery.js/
et
/^app/jquery.js/
avec la string "app/jquery.js" ou "app/autre-chose.js"
j'obtiens bien match dans le premier cas et pas de match dans le second
quelque soit l'expression régulière utilisée.
du coup je ne comprend pas ce que pourrait apporter [/] à la place du
bêbête /...
quelqu'un aurait des lumières ?

Bonjour,
C'est-à-dire que la première expression proposée va accepter
appjquery.js alors que la deuxième non.
Est-ce bien le sens de la question ?
Avatar
Une Bévue
Le 05/08/2016 à 22:19, Gloops a écrit :
C'est-à-dire que la première expression proposée va accepter
appjquery.js alors que la deuxième non.
Est-ce bien le sens de la question ?

oui, tout-à-fait !
je n'avais pas vu ça, la compatibilité pour win*...
merci bien.
Avatar
Guiche
Une Bévue Wrote in message:
Le 05/08/2016 à 22:19, Gloops a écrit :
C'est-à-dire que la première expression proposée va accepter
appjquery.js alors que la deuxième non.

je n'avais pas vu ça, la compatibilité pour win*...

Via HTTP on ne transmet que des slashes et tous les navigateurs
que j'ai vus sous Windows s'en sortent avec des slashes dans les
chemins (souvent relatifs). J'ai loupé quelque chose
?
----Android NewsGroup Reader----
http://usenet.sinaapp.com/
Avatar
SAM
Le 08/08/16 à 06:27, Guiche a écrit :
Une Bévue Wrote in message:
Le 05/08/2016 à 22:19, Gloops a écrit :
C'est-à-dire que la première expression proposée va accepter
appjquery.js alors que la deuxième non.

je n'avais pas vu ça, la compatibilité pour win*...

Via HTTP on ne transmet que des slashes et tous les navigateurs
que j'ai vus sous Windows s'en sortent avec des slashes dans les
chemins (souvent relatifs). J'ai loupé quelque chose
?

Je pratique très peu Windows qui me hait, mais ...
Ça marche aussi pour les chemins en "local" ?
file://C:monsitelerepertoirecefichier.html
== file://C:/monsite/lerepertoire/cefichier.html
???
Cordialement,
--
Stéphane Moriaux avec/with iMac-intel 27" & Mac OS X 10.6.8
Avatar
Gloops
Le 08/08/2016 à 12:19, SAM a écrit :
Le 08/08/16 à 06:27, Guiche a écrit :
Une Bévue Wrote in message:
Le 05/08/2016 à 22:19, Gloops a écrit :
C'est-à-dire que la première expression proposée va accepter
appjquery.js alors que la deuxième non.

je n'avais pas vu ça, la compatibilité pour win*...

Via HTTP on ne transmet que des slashes et tous les navigateurs
que j'ai vus sous Windows s'en sortent avec des slashes dans les
chemins (souvent relatifs). J'ai loupé quelque chose
?

Je pratique très peu Windows qui me hait, mais ...
Ça marche aussi pour les chemins en "local" ?
file://C:monsitelerepertoirecefichier.html
== > file://C:/monsite/lerepertoire/cefichier.html
???
Cordialement,

Ah j'ai essayé, effectivement ça marche, Firefox 48 a même ajouté
automatiquement une troisième barre oblique derrière file: ;)
(Windows XP Home SP3)
Avatar
Une Bévue
Le 08/08/2016 à 06:27, Guiche a écrit :
Via HTTP on ne transmet que des slashes et tous les navigateurs
que j'ai vus sous Windows s'en sortent avec des slashes dans les
chemins (souvent relatifs). J'ai loupé quelque chose
?

il s'agit d'un script de buid "brunch-config.coffee" pour Brunch.
il s'agit donc d'un PATH en CLI...
j'ignore complétement win*
Avatar
Olivier Miakinen
Bonjour,
Je vois que la réponse a déjà été donnée, mais je me permets
de préciser un peu.
Le 05/08/2016 17:58, Une Bévue a écrit :
Si je teste mes expressions :
/^app[/]jquery.js/
et
/^app/jquery.js/

Ce qui rend l'expression un peu difficile à comprendre, c'est
le fait que les caractères et / aient besoin d'être protégés
par . Si les caractères en question avaient été X et Y au
lieu de et / on aurait eu plus simplement :
/^app[XY]jquery.js/
et :
/^appYjquery.js/
Et la réponse aurait été que la première matche aussi bien
appXjquery.js que appYjquery.js alors que la seconde ne
matche que appYjquery.js .
Rappel : le groupe fr.comp.lang.regexp est parfait pour ce
genre de question.
--
Olivier Miakinen