Tôi đang cố gắng phân tích cú pháp yêu cầu nhiều phần/biểu mẫu dữ liệu đúng cách, nó hoạt động trừ khi tệp được tải lên có chứa dấu ngoặc kép.Regex cho tên tập tin có dấu ngoặc kép trong multipart
Yêu cầu trông giống như (trích đoạn từ Wireshark):..
Content-Disposition: form-data; name="file"; filename="b'e\"e.JPG"
Vì vậy, các tập tin được thực sự gọi là b'e "e.jpg trên hệ thống tập tin địa phương của tôi Trình duyệt thoát các dấu ngoặc kép đúng
tôi muốn lấy tên tập tin b'e\"e.JPG
ra khỏi chuỗi này
tôi tìm thấy một regex cho grabbing chuỗi trích dẫn với dấu ngoặc kép trốn bên trong:.
/"[^"\\]*(\\.[^"\\]*)*"/i
(nguồn http://www.regular-expressions.info/regexbuddy/stringescapedmulti.html)
Các regex hoạt động hoàn hảo khi được sử dụng trên chuỗi "b'e\"e.JPG"
nhưng khi tôi cố gắng phạm vi nó chỉ trên phần, như:
/filename="[^"\\]*(\\.[^"\\]*)*"/i
tôi sẽ không nhận được bất kỳ các kết quả.
Bất kỳ trợ giúp sẽ được đánh giá cao thực sự
Sửa:
Tôi đang làm việc với Javascript, vì vậy tôi đặt regex trên fiddle js: http://jsfiddle.net/hDBcs/
Cảm ơn!
Simon
Chỉ cần một thử nghiệm nhanh với RegexBuddy hoạt động tốt đối với tôi, là có một phần khác của Regex điều đó có thể làm rối tung nó lên? – CodingGorilla
Xin chào, cảm ơn bạn đã kiểm tra :) nhưng trong javascript nó không hoạt động không may. Tôi đã thêm một bài kiểm tra nhanh trên jsFiddle (xem phần chỉnh sửa). – sled