2017-01-09 93 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/

相關問題