我想检查文件的名称。它应该只接受信件,.XLSM的延伸扩展名为c的文件正则表达式#
我尝试这样做:
^[A-ZA-Z] + $ XLSM
有谁能够请解释一下如果这个正则表达式正确的话。 ^,+,$是什么意思?我应该添加什么东西?
谢谢
我想检查文件的名称。它应该只接受信件,.XLSM的延伸扩展名为c的文件正则表达式#
我尝试这样做:
^[A-ZA-Z] + $ XLSM
有谁能够请解释一下如果这个正则表达式正确的话。 ^,+,$是什么意思?我应该添加什么东西?
谢谢
下面是一个小小的摘要,但阅读完整的文档。
^表示开始 $表示结束 +表示该元素的一个或多个匹配 ?匹配0或1元件 [A-ZA-Z]是指在上部和下部壳体
string input;
string pattern = @"^[a-zA-Z]+\.xlsm";
Regex rgx = new Regex(pattern, RegexOptions.[put options]);
“afsbd.xlsmw23ew.xlsm”将打破这一点。你需要结尾$。 – Dispersia
我同意,虽然在这种情况下不是真正的时间场景,但最好是安全,然后对不起 –
试试这个方法:
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
}
甚至,if(filepath.EndsWith(“。xlsm”,StringComparison.CurrentCultureIgnoreCase)){}' – Quantic
^字母表示字符串的开头,$表示字符串的结束。这意味着整个字符串必须与您的正则表达式匹配,而不仅仅是字符串的一部分。
[a-zA-Z]匹配从a到z(小写和大写)的每个字母字符。
+是量词:在你的情况下,它是指在一排[A-ZA-Z] 1无穷OCCURENCES。
你想要的是这样的:^+ XLSM $,看看这里的解释(这是一个正则表达式调试器):https://regex101.com/
你读过关于如何使用'RegEx'任何文件? – MethodMan
你甚至读过关于正则表达式实际工作的任何内容吗?那里有很多教程。 – HimBromBeere
'^'匹配字符串的开头; '$'匹配字符串的末尾。这永远不会匹配任何内容,因为您在字符串结尾后试图找到“.xlsm”。去[阅读正则表达式](http://www.regular-expressions.info/)。 – adv12