文件正则表达式,扩展名为c {

时间:2017-01-09 16:51:09

标签: c# regex

我想检查文件的名称。它应该只接受扩展名为.xlsm

的字母

我试过了:

  

^ [A-ZA-Z] + $。XLSM

任何人都可以解释一下这个正则表达式是否正确。 ^,+,$是什么意思?我应该添加一些东西吗?

谢谢

3 个答案:

答案 0 :(得分:1)

这是一个小小的摘要,但请阅读完整的文档。

^表示开始 $意味着结束 +表示该元素的1个或多个匹配项 ?匹配0或1个元素 [a-zA-Z]表示大写和小写的字母

string input;
string pattern = @"^[a-zA-Z]+\.xlsm";
Regex rgx = new Regex(pattern, RegexOptions.[put options]);

答案 1 :(得分:1)

^ 表示字符串的开头, $ 表示字符串的结尾。这意味着整个字符串必须匹配你的正则表达式,而不仅仅是字符串的一部分。

[a-zA-Z] 匹配a到z(小写和大写)中的每个字母字符。

+ 是一个量词:在你的情况下,它意味着连续出现 [a-zA-Z] 的1-infinity。

你想要的是: ^。+。xlsm $ ,在这里查看解释(这是一个正则表达式调试器):https://regex101.com/

答案 2 :(得分:0)

尝试这种方式:

var filename = "test.xlsm";
if ( /\.(xlsm)$/i.test(filename) ) {
alert("matched")
}
else
{
alert("not matched")
}

修改

检查c#中的扩展程序的更好方法是:

var filepath = @"file.xlsm";
var extension = Path.GetExtension(filepath).ToUpper();

if (extension == ".XLSM") {
    // is an Excel file with xlsm extension
}