2017-01-09 120 views
-4

我想检查文件的名称。它应该只接受信件,.XLSM的延伸扩展名为c的文件正则表达式#

我尝试这样做:

^[A-ZA-Z] + $ XLSM

有谁能够请解释一下如果这个正则表达式正确的话。 ^,+,$是什么意思?我应该添加什么东西?

谢谢

+0

你读过关于如何使用'RegEx'任何文件? – MethodMan

+0

你甚至读过关于正则表达式实际工作的任何内容吗?那里有很多教程。 – HimBromBeere

+4

'^'匹配字符串的开头; '$'匹配字符串的末尾。这永远不会匹配任何内容,因为您在字符串结尾后试图找到“.xlsm”。去[阅读正则表达式](http://www.regular-expressions.info/)。 – adv12

回答

1

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

^表示开始 $表示结束 +表示该元素的一个或多个匹配 ?匹配0或1元件 [A-ZA-Z]是指在上部和下部壳体

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

“afsbd.xlsmw23ew.xlsm”将打破这一点。你需要结尾$。 – Dispersia

+0

我同意,虽然在这种情况下不是真正的时间场景,但最好是安全,然后对不起 –

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 
} 
+0

甚至,if(filepath.EndsWith(“。xlsm”,StringComparison.CurrentCultureIgnoreCase)){}' – Quantic

1

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

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

+是量词:在你的情况下,它是指在一排[A-ZA-Z] 1无穷OCCURENCES。

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

相关问题