7 réponses
Utilisateur anonyme
17 févr. 2022 à 17:18
17 févr. 2022 à 17:18
Bonjour
peux tu donner des exemples de chemins que tu voudrais voir "matcher" avec la regex et des exemples de que tu voudrais voir "ne pas matcher"
peux tu donner des exemples de chemins que tu voudrais voir "matcher" avec la regex et des exemples de que tu voudrais voir "ne pas matcher"
blux
Messages postés
26659
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
18 février 2025
3 327
17 févr. 2022 à 17:30
17 févr. 2022 à 17:30
Salut,
tu as essayé en forçant du pattern matching ou en mettant ^ au début ?
Est-ce que ton langage autorise les guillemets comme séparateur de regex ?
tu as essayé en forçant du pattern matching ou en mettant ^ au début ?
Est-ce que ton langage autorise les guillemets comme séparateur de regex ?
blux
Messages postés
26659
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
18 février 2025
3 327
Modifié le 17 févr. 2022 à 17:53
Modifié le 17 févr. 2022 à 17:53
Oui et vérifie que ce que tu testes n'a pas un blanc à la fin, par exemple ou purge les blancs en début et fin avec un truc comme ça :
Pour forcer du pattern matching, ajoute 'm' devant ton guillemet ouvrant :
[LOCATION] =~ s/^\s+|\s+$//g;
Pour forcer du pattern matching, ajoute 'm' devant ton guillemet ouvrant :
[LOCATION] !~ m"/var/log/sites-web/.*\.log"
Je tiens à préciser quelque chose, dans l'autre sens, cela fonctionne :
J'obtiens bien les données concernées.
if [location] =~ "/var/log/sites-web/.*\.log" { ... }
J'obtiens bien les données concernées.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
blux
Messages postés
26659
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
18 février 2025
3 327
17 févr. 2022 à 17:59
17 févr. 2022 à 17:59
Tu ne serais pas dans ce cas-là, par hasard ?
https://forums.commentcamarche.net/forum/affich-16025052-shell-condition
https://forums.commentcamarche.net/forum/affich-16025052-shell-condition
Utilisateur anonyme
17 févr. 2022 à 19:40
17 févr. 2022 à 19:40
Quand on veut tester ce que peut donner une regex, il y a des sites en ligne spécialisés.
Le mieux est d'en trouver un qui utilise le même moteur de regex que soi (il y a quelques subtilités d'un moteur à l'autre....)
Là j'ai pas trouvé, donc j'ai utilisé regex101 avec son moteur par défaut.
Cette regex, sera très restrictive
Par contre s'il manque ne serait ce qu'un chiffre, ça ne matche pas
Voir ici ce que ça donne https://regex101.com/r/tTyLg5/1
Le mieux est d'en trouver un qui utilise le même moteur de regex que soi (il y a quelques subtilités d'un moteur à l'autre....)
Là j'ai pas trouvé, donc j'ai utilisé regex101 avec son moteur par défaut.
Cette regex, sera très restrictive
^\/var\/log\/sites-web\/user\.cluster\.hosting\.ovh\.net-\d\d-\d\d-\d\d\d\d\.log$et correspond exactement au lien que tu as montré. Elle ne vérifie pas si la date est valide.
Par contre s'il manque ne serait ce qu'un chiffre, ça ne matche pas
Voir ici ce que ça donne https://regex101.com/r/tTyLg5/1
Utilisateur anonyme
Modifié le 18 févr. 2022 à 23:39
Modifié le 18 févr. 2022 à 23:39
^ça veut dire que le texte doit être tester à partir du début, et pas quelque part au milieu
\/var\/log\/sites-web\/user\.cluster\.hosting\.ovh\.net-c'est "littéralement" la partie fixe de ton chemin, au détail prés que / et . sont des instructions en regex. Pour forcer la recherche du caractère / et du caractère . il faut mettre \ devant
\dreprésente un chiffre
\.log$littéralement .log et le $ signifie que la recherche doit se faire jusqu'à la fin du texte et pas s'arrêter quelque part au milieu
17 févr. 2022 à 17:42
Voici un exemple de chemin :
Tous les fichiers sont similaires, il n'y a que la date qui change.
Ensuite, tous les autres types de logs tels que , , etc. ne doivent pas matcher.