12

我需要一个正则表达式来上传文件,以仅选择我尝试使用它作为我的模式的 Excel 文件(下)

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

不幸的是,我无法逃脱“\”。图案的一部分。

4

2 回答 2

27

更好的方法是使用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?$");
于 2013-10-09T05:41:39.183 回答
5

只需添加另一个\@在字符串前面添加,如下所示:"^.\\.(xls|xlsx)"@"^.\.(xls|xlsx)"

另外,我假设您应该将文件的扩展名与该正则表达式匹配,而不是实际的文件名本身,因为该正则表达式将匹配以or开头的任何内容。.xls.xlsx

于 2013-10-09T05:42:10.360 回答