2013-10-09 111 views
9

我需要一個正則表達式爲我的文件上傳只選擇練成我試着用這個文件作爲我的模式(下)C#正則表達式的文件擴展名

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

不幸的是我無法逃避的「\」。模式的一部分。有人可以給我一個解決方案。

+0

你嘗試過這種類似 http://stackoverflow.com/questions/374930/validating-file-types-by-regular-expression – Ravi

+0

@Ravi問題即時得到是轉義序列「」 – zxc

+0

你能發佈完整代碼嗎 – Amit

回答

19

一個更好的方法是使用Path.GetExtension,然後比較結果:

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

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

要回答原來的問題,以配合.xls.xlsx文件路徑爲文件擴展名,使用下面的正則表達式:

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

我可以指定只允許使用excel文件嗎? – zxc

+0

是的,只需檢查'GetExtension' –

+1

這項工作的結果! TNX隊友! – zxc

3

只需要添加另外\或在像這樣的字符串前添加@"^.\\.(xls|xlsx)"@"^.\.(xls|xlsx)"

此外,我假設你應本身的匹配與正則表達式的文件的擴展名,而不是實際的文件名,因爲這正則表達式將匹配開始.xls.xlsx什麼。

+0

確定此操作! TNX! – zxc

相關問題