C#Regex文件扩展名

时间:2013-10-09 05:39:51

标签: c# regex visual-studio-2010

我的文件上传需要正则表达式才能选择我尝试使用此作为我的模式的excel文件(下面)

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

不幸的是我无法逃脱“\”。模式的一部分。有人请给我一个解决方案。

2 个答案:

答案 0 :(得分:22)

更好的方法是使用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?$");

答案 1 :(得分:3)

只需添加其他\或在字符串前添加@,如下所示:"^.\\.(xls|xlsx)"@"^.\.(xls|xlsx)"

另外,我假设您将匹配文件的扩展名与该正则表达式,而不是实际的文件名本身,因为该正则表达式将匹配启动.xls的任何内容}或.xlsx