Expression regulière, j'y arrive pas...
Fermé
Nico
-
24 nov. 2008 à 11:52
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 - 24 nov. 2008 à 14:21
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 - 24 nov. 2008 à 14:21
A voir également:
- Expression regulière, j'y arrive pas...
- Téléchargez cette archive (dossier compressé). en extraire tous les fichiers dans un dossier local. quel fichier contient l’expression trouverpix ? ✓ - Forum Windows
- Expected expression ✓ - Forum C
- Quel fichier contient l’expression trouverpix ? - Forum Programmation
- Expression encoder - Télécharger - Divers Utilitaires
- Expression écrite ce2 à imprimer - Télécharger - Éducatifs
2 réponses
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 567
24 nov. 2008 à 12:53
24 nov. 2008 à 12:53
Salut,
^((win)|(red))-log[0-9]*\.log$
Petit complément si vous le permettez.
En fait les parenthèses on les utilise pour les captures où pour les alternatives
Dans la regex de kilian les parenthèses qui entourent les termes de l'alternative ne sont pas nécessaires.
En fait les moteurs des regex sont plutôt tenaces et persévérants mais en aucun cas intelligents.
Ils ne sauront pas trouver win mais un w suivi d'un i suivi d'un n.
Vous allez peut être dire que c'est du n'importe quoi ou que c'est pareil.
En réalité ce n'est pas pareil. Le moteur cherche d'abord en commençant avec la 1ère position dans notre cas le début de chaine.
Si jamais il n'a pas trouvé w alors il va chercher un r.
Si la correspondance échoue alors il va s'arrêter à cause de ^.
Si ^ n'existais pas il aurait recommencé à la deuxième position et ainsi de suite jusqu'à quand il aurait épuisé toutes les possibilités.
Donc il ne va jamais chercher i ou e si w ou r ne se trouve pas en début de chaine.
Dans ce cas c'est simple.
Mais dans une regex plus compliquée vous allez vous rendre compte à quel point c'est utile de lire le regex caractère par caractère.
^((win)|(red))-log[0-9]*\.log$
Petit complément si vous le permettez.
En fait les parenthèses on les utilise pour les captures où pour les alternatives
Dans la regex de kilian les parenthèses qui entourent les termes de l'alternative ne sont pas nécessaires.
^(win|red)-log[0-9]*\.log$win suivi de - ou de r puis ed-lo puis 0 ou plusieurs g puis le caractère qu'on veut puis log :-)
En fait les moteurs des regex sont plutôt tenaces et persévérants mais en aucun cas intelligents.
Ils ne sauront pas trouver win mais un w suivi d'un i suivi d'un n.
Vous allez peut être dire que c'est du n'importe quoi ou que c'est pareil.
En réalité ce n'est pas pareil. Le moteur cherche d'abord en commençant avec la 1ère position dans notre cas le début de chaine.
Si jamais il n'a pas trouvé w alors il va chercher un r.
Si la correspondance échoue alors il va s'arrêter à cause de ^.
Si ^ n'existais pas il aurait recommencé à la deuxième position et ainsi de suite jusqu'à quand il aurait épuisé toutes les possibilités.
Donc il ne va jamais chercher i ou e si w ou r ne se trouve pas en début de chaine.
Dans ce cas c'est simple.
Mais dans une regex plus compliquée vous allez vous rendre compte à quel point c'est utile de lire le regex caractère par caractère.
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 524
24 nov. 2008 à 11:59
24 nov. 2008 à 11:59
Salut,
Avec ton expression régulière on a
win suivi de - ou de r puis ed-lo puis 0 ou plusieurs g puis le caractère qu'on veut puis log :-)
Ce serait plutôt:
Avec ton expression régulière on a
"^(win-|red-)log*(.log)$"
win suivi de - ou de r puis ed-lo puis 0 ou plusieurs g puis le caractère qu'on veut puis log :-)
Ce serait plutôt:
^((win)|(red))-log[0-9]*\.log$
24 nov. 2008 à 13:30
Vous êtes de vrai champion!
24 nov. 2008 à 14:21