sle*_*led 5 regex filenames multipart
我正在尝试正确解析multipart/form-data请求,除非上传的文件包含双引号,否则它会起作用.
请求看起来像(摘自wireshark):
Content-Disposition: form-data; name="file"; filename="b'e\"e.JPG"
Run Code Online (Sandbox Code Playgroud)
因此,该文件实际上被称为b'e"e.jpg在我的本地文件系统上.浏览器正确地转义了引号.
我想b'e\"e.JPG从这个字符串中获取文件名.
我找到了一个正则表达式,用于抓取带有转义引号的带引号的字符串:
/"[^"\\]*(\\.[^"\\]*)*"/i
Run Code Online (Sandbox Code Playgroud)
(来源http://www.regular-expressions.info/regexbuddy/stringescapedmulti.html)
正则表达式在应用于字符串"b'e\"e.JPG"时非常有效,但是当我尝试将其范围仅限于filename=部分时,例如:
/filename="[^"\\]*(\\.[^"\\]*)*"/i
Run Code Online (Sandbox Code Playgroud)
我不会得到任何结果.
任何帮助将非常感激
编辑:
我正在使用JavaScript,所以我把正则表达式放在js小提琴上:http://jsfiddle.net/hDBcs/
谢谢!
西蒙
问题可能是您没有使用括号来获取所需的零件:
/filename="([^"\\]*(?:\\.[^"\\]*)*)"/i
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1893 次 |
| 最近记录: |