2013-10-09 16 views
9

Tôi cần một regex để tải lên tập tin của tôi để lựa chọn chỉ các file excel Tôi đã cố gắng sử dụng điều này như mô hình của tôi (sau đây)C# Regex để mở rộng tập tin

Regex reg = new Regex("^.\.(xls|xlsx)"); 

Đáng tiếc là tôi không thể thoát khỏi "\". một phần của mô hình. Ai đó có thể xin cho tôi một giải pháp cho việc này.

+0

bạn đã thử cách này như http://stackoverflow.com/questions/374930/validating-file-types-by-regular-expression – Ravi

+0

@Ravi sự cố mà im nhận được là chuỗi thoát cho "." – zxc

+0

Bạn có thể đăng toàn bộ mã số – Amit

Trả lời

19

Một phương pháp tốt hơn là nên sử dụng Path.GetExtension, sau đó so sánh kết quả:

var filepath = @"C:\path\to\file.xls"; 
var extension = Path.GetExtension(filepath).ToUpper(); 

if (extension == ".XLS" || extension == ".XLSX") { 
    // is an Excel file 
} 

Để trả lời câu hỏi ban đầu, để phù hợp với filepaths với .xls hoặc .xlsx như một phần mở rộng tập tin, sử dụng regex sau :

var regex = new Regex(@".*\.xlsx?$"); 
+0

tôi có thể chỉ định để cho phép các tệp excel chỉ sử dụng tính năng này không? – zxc

+0

Có, chỉ cần kiểm tra kết quả của 'GetExtension' –

+1

tác phẩm này! tnx mate! – zxc

3

Chỉ cần thêm một \ hoặc thêm @ trước chuỗi như vậy : "^.\\.(xls|xlsx)" hoặc @"^.\.(xls|xlsx)"

Ngoài ra, tôi giả định rằng bạn sẽ được phù hợp với phần mở rộng của tập tin với regex đó, và không phải là tên tập tin thực tế bản thân, vì regex mà sẽ phù hợp với bất cứ điều gì mà bắt đầu với .xls hoặc .xlsx.

+0

OK ĐƯỢC LÀM VIỆC NÀY! TNX! – zxc

Các vấn đề liên quan