C#正則表達(dá)式之Ismatch()的用法解讀
c#正則表達(dá)式之ismatch()的用法解讀
c#正則表達(dá)式之ismatch()
1.ismatch()方法
ismatch()方法可以測(cè)試字符串,看它是否匹配正則表達(dá)式的模式。
如果發(fā)現(xiàn)一次匹配,該方法返回"true",否則返回"false"。
ismatch()擁有一個(gè)靜態(tài)的重載方法,使用時(shí)無(wú)需顯示的創(chuàng)建一個(gè)regex對(duì)象。
2.regexoptions枚舉
using system; using system.collections.generic; using system.linq; using system.text; using system.text.regularexpressions; using system.threading.tasks; namespace regular { class program { static void main(string[] args) { regex mregular = new regex("a[bcd]c", regexoptions.explicitcapture); //ismatch擁有靜態(tài)和非靜態(tài)的幾種重載方法; //如果正則表達(dá)式只使用一次,使用靜態(tài)方法更好! string str = "abc acc"; console.writeline(mregular.ismatch(str)); string str2 = "welcome to verison-fios!"; console.writeline(regex.ismatch(str2,"me t",regexoptions.ignorecase)); console.readkey(); } } }
3.spilt()方法
此方法在每次發(fā)現(xiàn)匹配的位置拆分字符串。該方法返回一個(gè)字符串?dāng)?shù)組。
該方法有靜態(tài)的重載方法,也有用于regex實(shí)例的方法!
c#正則表達(dá)式編寫(xiě)及驗(yàn)證方式
正則表達(dá)式應(yīng)用很廣泛,應(yīng)該大多人都接觸過(guò)了,這個(gè)語(yǔ)法規(guī)則既多又凌亂,每次用的時(shí)候都得重新看一遍語(yǔ)法,真的是讓人頭疼??!
但是實(shí)際上我們并不要掌握很多的符號(hào)用法規(guī)則,牢記最常用的幾個(gè)就能應(yīng)付很多場(chǎng)景.
下面我羅列出來(lái)我最常用的8個(gè):
- \d 匹配數(shù)字
- ^匹配行的開(kāi)始
- $ 匹配行的結(jié)尾
- \ 對(duì)下一個(gè)字符轉(zhuǎn)義
- * 匹配前面的表達(dá)式零次或多次
- + 匹配前面的表達(dá)式一次或多次
- ?匹配前面的表達(dá)式零次或一次
- {n,m}m 和 n 均為非負(fù)整數(shù),其中n <= m。最少匹配 n 次且最多匹配 m 次。
正則表達(dá)式
① [0,1000]:閉合區(qū)間0到1000,不包括小數(shù)
regexstring=?@"^(0|1000|([1-9]\d{0,2}))$"
②[0,100]:閉區(qū)間,包括小數(shù)點(diǎn)后三位
regexstring = @"^((\d|[1-9]\d)(\.\d{1,3})?)|100$";//[0,100] 包括小數(shù)點(diǎn)后三位
驗(yàn)證
static void main(string[] args) { string regexstring; //regexstring = @"^(0|1000|([1-9]\d{0,2}))$"; regexstring = @"^((\d|[1-9]\d)(\.\d{1,3})?)|100$";//[0,100] 包括小數(shù)點(diǎn)后三位 for (double i = 0; i < 100; i = i + 0.001) { var str = math.round(i, 3).tostring(); bool mathresult = regex.ismatch(str, regexstring); if (!mathresult) { console.writeline(str); } } console.writeline("match complete!"); console.readkey(); }
運(yùn)行結(jié)果:
如果運(yùn)行錯(cuò)誤,會(huì)輸出沒(méi)匹配上的數(shù)值,這個(gè)說(shuō)明編寫(xiě)的正則沒(méi)問(wèn)題!
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持碩編程。