C#Regex文件扩展名

zxc*_*zxc 10 c# regex visual-studio-2010

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

Regex reg = new Regex("^.\.(xls|xlsx)");
Run Code Online (Sandbox Code Playgroud)

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

Bri*_*ntz 23

更好的方法是使用Path.GetExtension,然后比较结果:

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

if (extension == ".XLS" || extension == ".XLSX") {
    // is an Excel file
}
Run Code Online (Sandbox Code Playgroud)

要回答原来的问题,与匹配的文件路径.xls.xlsx为文件扩展名,使用下面的正则表达式:

var regex = new Regex(@".*\.xlsx?$");
Run Code Online (Sandbox Code Playgroud)


npi*_*nti 5

只需添加另一个\@像这样在字符串前面添加:"^.\\.(xls|xlsx)"@"^.\.(xls|xlsx)"

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