2011-07-26 8 views
5

マルチパート/フォームデータ要求を正しく解析するために、アップロードされるファイルに二重引用符が含まれていない限り動作します。マルチパートの引用符付きファイル名の正規表現

要求(wiresharkのからの抜粋)のようになります。。

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

は、だから、ファイルは実際に私のローカルファイルシステム上b'e「e.jpgと呼ばれているブラウザが適切に引用符をエスケープ

。私は

この文字列からファイル名b'e\"e.JPGをつかむしたい私は、内部のエスケープ引用符で引用符で囲まれた文字列をつかむために正規表現を見つけました:

私はいずれかを取得することはありません

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

:私だけ部分にスコープにそれをしようとすると、

(ソースhttp://www.regular-expressions.info/regexbuddy/stringescapedmulti.html

正規表現は次のように、文字列"b'e\"e.JPG"に適用されたときに完璧に動作しますが、結果。

すべてのヘルプは本当に

をいただければ幸いです

編集:私はJavaScriptで働いているので、私はjsのフィドルに正規表現を置く

http://jsfiddle.net/hDBcs/

ありがとう!

サイモン

+0

だけRegexBuddyとの簡単なテストは、私のために正常に動作し、正規表現の別の部分がありますそれはそれを台無しにするかもしれない? – CodingGorilla

+0

こんにちは、テストのおかげで:)しかし、それは残念ながら動作しませんjavascriptで。私はjsFiddleの簡単なテストを追加しました(編集を参照)。 – sled

答えて

4

は、おそらく問題はあなたが必要な部品を入手するために、括弧を使用していないということです。

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

ありがとうございます! – sled

関連する問題