正則表達(dá)式(Regular expression)
理解: wiki: a sequence of characters that define a search pattern
個(gè)人翻譯:定義某種匹配規(guī)則的字符序列
目的:檢驗(yàn)字符串是否符合某種規(guī)則
例子:Windows中文件名不能含有這些字符 [, /, \, |, <, >, # ,? , :, * 可用正則表達(dá)式解決
一.通過(guò)代碼講解正則表達(dá)式的使用:
C#版本
bool IsValidFilename(string testName)
{
Regex invalidFileName = new Regex(@"[/\|<>#?*:]");
if (invalidFileName.IsMatch(testName))
{
return false;
};
return true;
}
通常我們會(huì)定義一個(gè)匹配規(guī)則的載體,代碼中@"[/\|<>#?*:]"
是規(guī)則, invalidFileName
是載體。怎么理解压状?invalidFileName
對(duì)象通過(guò)@"[/\|<>#?*:]
構(gòu)造晦雨,這個(gè)對(duì)象會(huì)調(diào)用IsMatch()
方法去匹配字符串初狰,匹配的規(guī)則就是@"[/\|<>#?*:]
二.正則表達(dá)式語(yǔ)法
正則表達(dá)式在各種語(yǔ)言中的使用套路大同小異秫筏,學(xué)習(xí)正則表達(dá)式诱鞠,其核心是匹配規(guī)則的編寫(xiě)
這是簡(jiǎn)易入門挎挖,所以我并不會(huì)向其他教程或博客通篇列舉各種語(yǔ)法,我只是介紹最簡(jiǎn)單最常用的語(yǔ)法般甲,等到自己發(fā)現(xiàn)某種規(guī)則沒(méi)有思路編寫(xiě)肋乍,我們?cè)偃ゲ橄嚓P(guān)資料進(jìn)行學(xué)習(xí)鹅颊,這才是學(xué)習(xí)正則表達(dá)式的正確方法敷存。
這里就以我們上面代碼用到的規(guī)則講解一下,我們發(fā)現(xiàn)堪伍,[]
中包含著Windows文件名中所不能包含的字符锚烦。對(duì)的,就像你猜的一樣帝雇,[]
中包含的字母在要匹配的字符串中出現(xiàn)涮俄,就會(huì)匹配成功。(前面的@
是C#語(yǔ)法尸闸,加上了@
彻亲,我們寫(xiě)字符串的時(shí)候就不需要考慮轉(zhuǎn)義字符了)
三.總結(jié)
這僅僅是簡(jiǎn)易入門,正則表達(dá)式的學(xué)習(xí)不是一朝一夕的事情吮廉,需要長(zhǎng)久的使用和總結(jié)記憶苞尝。下面是語(yǔ)法參考資料
正則表達(dá)式規(guī)則