3 votes

Expression rationnelle pour le chemin d'accès à un dossier : 1 seul sous-dossier

J'aimerais demander de l'aide aux personnes qui ont une compréhension plus avancée des expressions rationnelles que moi. J'ai passé de nombreuses heures à essayer des choses et j'ai aussi parcouru les tutoriels sur youtube et je suis à bout de nerfs parce que cela fonctionne en quelque sorte mais le modèle de regex est assez large et je n'arrive pas à le restreindre.

En fait, j'utilise cette expression rationnelle

apidocs\/static\/[^\/]+[.](?:png|jpg|jpeg|gif|pdf)

il considérera donc que ce document est valide

./apidocs/static/mypicture.jpg

également valable

apidocs/static/mypicture.jpg

démo regex :

https://regex101.com/r/p1EA9m/1

Mais je constate qu'ils sont également valables, ce qui n'est pas mon intention

./traapidocs/static/mypicture.jpg

./whatever/apidocs/static/mypicture.jpg

Comment puis-je configurer la regex pour que seuls ces 2 motifs soient valides (les dossiers racine sont ./apidocs ou apidocs) ?

    ./apidocs/static/mypicture.jpg

    apidocs/static/mypicture.jpg

Je l'utilise dans un script python, et j'ai constaté que le fait de mettre un caret devant dans un groupe ne fonctionne pas. Peut-être qu'il y a une façon plus simple de former la regex.

Merci d'avance à tous ceux qui pourront nous aider !

1voto

Wiktor Stribiżew Points 100073

Vous pouvez utiliser

^(?:\.\/)?apidocs\/static\/[^\/]+\.(?:png|jpe?g|gif|pdf)$ 

Voir le Démonstration des expressions rationnelles .

Détails :

  • ^ - début de la chaîne
  • (?:\.\/)? - une option ./ chaîne de caractères
  • apidocs\/static\/ - a apidocs/static/ chaîne de caractères
  • [^\/]+ - un ou plusieurs caractères autres que /
  • \. - un point
  • (?:png|jpe?g|gif|pdf) - png , jpg o jpeg , gif , pdf
  • $ - fin de la chaîne de caractères

0voto

Celle-ci semble fonctionner pour vos données :

^(\.\/)?apidocs\/static\/[^\/]+[.](?:png|jpg|jpeg|gif|pdf)$

Démonstration : https://regex101.com/r/VA0bKz/1

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X