2011-07-26 39 views
5

我想解析一個multipart /表格數據請求正常,它的工作原理,除非beeing上傳的文件包含雙引號。正則表達式的文件名與多部分報價

請求看起來像(摘自Wireshark的):

Content-Disposition: form-data; name="file"; filename="b'e\"e.JPG" 

所以文件實際上是所謂B'E「在我的本地文件系統e.jpg的瀏覽器中正確轉義引號

我想抓住的文件名b'e\"e.JPG出這個字符串的

我發現了一個正則表達式裏面轉義引號抓引號的字符串:

/"[^"\\]*(\\.[^"\\]*)*"/i 

(來源http://www.regular-expressions.info/regexbuddy/stringescapedmulti.html

當上了弦"b'e\"e.JPG"應用正則表達式完美的作品,但是當我嘗試它的範圍只在部分,如:

/filename="[^"\\]*(\\.[^"\\]*)*"/i 

我不會得到任何結果。

任何幫助將非常感激

編輯

我使用JavaScript,所以我把正則表達式的JS小提琴:http://jsfiddle.net/hDBcs/

謝謝!

西蒙

+0

只是一個快速的測試與使用RegexBuddy正常工作對我來說,有沒有正則表達式的另一部分那可能會搞砸了嗎? – CodingGorilla

+0

嗨,感謝您的測試:)但在JavaScript中不起作用。我在jsFiddle上添加了一個快速測試(請參閱編輯)。 – sled

回答

4

可能的問題是,你不使用支架,以獲得所需的部件:

/filename="([^"\\]*(?:\\.[^"\\]*)*)"/i 
+0

非常感謝你! – sled