我想检查文件的名称。它应该只接受扩展名为.xlsm
的字母我试过了:
^ [A-ZA-Z] + $。XLSM
任何人都可以解释一下这个正则表达式是否正确。 ^,+,$是什么意思?我应该添加一些东西吗?
谢谢
答案 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
}