与Excel文件扩展名匹配的C# Regex

zc0qhyus  于 2022-12-24  发布在  C#
关注(0)|答案(2)|浏览(172)

我需要一个正则表达式为我的文件上传只选择Excel文件,我试图使用这个作为我的模式(如下)

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

不幸的是,我无法摆脱模式中的“.”部分。

xmq68pz9

xmq68pz91#

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

n53p2ov02#

只需添加另一个\或在字符串前面添加@,如下所示:"^.\\.(xls|xlsx)"@"^.\.(xls|xlsx)"
此外,我假设您将匹配文件的扩展名与该正则表达式,而不是实际的文件名本身,因为该正则表达式将匹配 * 以.xls.xlsx开头的任何内容。

相关问题