javascript regex pour l'extraction de nom de fichier-tête Content-Disposition
- Tête Content-disposition contient le nom de fichier qui peut être facilement extrait, mais parfois il contient des guillemets, parfois pas de guillemets et il y a probablement certains autres variantes de trop. Quelqu'un peut-il écrire une regex qui fonctionne dans tous les cas.
Content-Disposition: attachment; filename=content.txt
Ici sont quelques-uns des chaînes cibles:
attachment; filename=content.txt
attachment; filename*=UTF-8''filename.txt
attachment; filename="EURO rates"; filename*=utf-8''%e2%82%ac%20rates
attachment; filename="omáèka.jpg"
and some other combinations might also be there
Vous devez vous connecter pour publier un commentaire.
Vous pouvez essayer quelque chose dans cet esprit:
Votre nom de fichier est dans la première capture d'un groupe: http://regex101.com/r/hJ7tS6
Légèrement modifié pour correspondre à mon cas d'utilisation (bandes de toutes les citations et UTF tags)
filename\*?=['"]?(?:UTF-\d['"]*)?([^;\r\n"']*)['"]?;?
https://regex101.com/r/UhCzyI/3
https://regex101.com/r/hJ7tS6/51
Modifier: Vous pouvez également utiliser cet analyseur:
https://github.com/Rob--W/open-in-browser/blob/master/extension/content-disposition.js
Avertissement: la réponse suivante ne fonctionne qu'avec PCRE (par exemple en Python /PHP), si vous avez de l'utilisation de javascript, l'utilisation de Robin réponse.
Cette version modifiée de Robin regex bandes les citations:
https://regex101.com/r/hJ7tS6/28
Le nom de fichier est dans la deuxième capture d'un groupe.
Voici mon expression régulière. Il fonctionne sur le Javascript.
J'ai utilisé dans mon projet.