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è)參考,也希望大家多多支持腳本之家。
相關(guān)文章
c#之圓形無(wú)標(biāo)題欄橢圓窗體的實(shí)現(xiàn)詳解
本篇文章是對(duì)c#中圓形無(wú)標(biāo)題欄橢圓窗體的實(shí)現(xiàn)方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06C#實(shí)現(xiàn)鬧鐘AlarmClock實(shí)例代碼
這篇文章主要介紹了C#實(shí)現(xiàn)鬧鐘AlarmClock實(shí)例代碼,很實(shí)用的功能,需要的朋友可以參考下2014-08-08C#實(shí)現(xiàn)程序等待延遲執(zhí)行的方法
這篇文章主要介紹了C#實(shí)現(xiàn)程序等待延遲執(zhí)行的方法,涉及C#動(dòng)態(tài)鏈接庫(kù)的使用及延遲的實(shí)現(xiàn)技巧,需要的朋友可以參考下2015-09-09C#實(shí)現(xiàn)圖片放大功能的按照像素放大圖像方法
這篇文章主要介紹了C#實(shí)現(xiàn)圖片放大功能的按照像素放大圖像方法,功能非常實(shí)用,需要的朋友可以參考下2014-07-07深入多線(xiàn)程之:深入生產(chǎn)者、消費(fèi)者隊(duì)列分析
本篇文章是對(duì)生產(chǎn)者與消費(fèi)者隊(duì)列進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05c# WPF中自定義加載時(shí)實(shí)現(xiàn)帶動(dòng)畫(huà)效果的Form和FormItem
這篇文章主要介紹了c# WPF中自定義加載時(shí)實(shí)現(xiàn)帶動(dòng)畫(huà)效果的Form和FormItem,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下2021-03-03Unity的IPostprocessBuildWithReport實(shí)用案例深入解析
這篇文章主要為大家介紹了Unity的IPostprocessBuildWithReport實(shí)用案例深入解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05