Bonjour,
je voudrais savoir si cette expression est valide (double ^):
C'est équivalent à ça ?Code:"[^[a-c][^d-f][g-i][^k-m]]"
Code:
1
2
3
4 "[^a-cg-i[^d-fk-m]]" ou bien "[^a-ck-m]"
Version imprimable
Bonjour,
je voudrais savoir si cette expression est valide (double ^):
C'est équivalent à ça ?Code:"[^[a-c][^d-f][g-i][^k-m]]"
Code:
1
2
3
4 "[^a-cg-i[^d-fk-m]]" ou bien "[^a-ck-m]"
Pourquoi ne pas tester ;) ?
En fait le vrai problème, n'est pas le double ^ mais plutôt les emboitements de [] qui ne marchent pas.
En fait cette regex ne décrit pas un seul caractère, mais une suite:
- "[^[a-c]" (n'importe quel caractère différent de [, a, b, c)
- "[^d-f]" (n'importe quel caractère différent de d, e, f)
- "[g-i]" (g ou i)
- "[^k-m]" (n'importe quel caractère différent de k, l, m)
- "]" (le caractère crochet fermant ])
Et donc quelque chose comme "&ahQ]" va matcher.
Effectivement on ne peut pas inclure de multiple []
Donc pour ce pattern, on a :
=> par contre, je n'avais pu vu dans les tuto trouvés sur le net ce type de comportement (signification d'un caractère en fonction du contexte).Code:
1
2
3
4
5
6
7 "ab][a-z[]cd" // => le caractère '[' est vu comme un caractère normal s'il est mis après un '[' non fermé // => le caractère ']' est vu comme un caractère normal s'il n'est pas mis entre crochets "ab\\cd" // => recherche abcd "ab\\\\cd" // => recherche ab\cd "ab[\\]cd" // => recherche ab\cd
Est-ce que vous connaissez un document avec la description complète du fonctionnement des regex ?
Moche, mais plus pédagogique que les pages man*: http://www.regular-expressions.info/
ok merci beaucoup
:resolu: (i.e. la balise) ?