国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C#中常用的正則表達式實例

2019-10-29 21:20:27
字體:
供稿:網(wǎng)友

目前為止,許多編程語言和工具都包含對正則表達式的支持,C#也不例外,C#基礎(chǔ)類庫中包含有一個命名空間(System.Text.RegularExpressions)和一系列可以充分發(fā)揮規(guī)則表達式威力的類(Regex、Match、Group等)。那么,什么是正則表達式,怎么定義正則表達式呢?

正則表達式基礎(chǔ)

 什么是正則表達式

   在編寫字符串的處理程序時,經(jīng)常會有查找符合某些復(fù)雜規(guī)則的字符串的需要。正則表達式就是用于描述這些規(guī)則的工具。換句話說,正則表達式就是記錄文本規(guī)則的代碼。
    通常,我們在使用WINDOWS查找文件時,會使用通配符(*和?)。如果你想查找某個目錄下的所有Word文檔時,你就可以使用*.doc進行查找,在這里,*就被解釋為任意字符串。和通配符類似,正則表達式也是用來進行文本匹配的工具,只不過比起通配符,它能更精確地描述你的需求——當然,代價就是更復(fù)雜。

   一個簡單的例子——驗證電話號碼

學習正則表達式的最好方法是從例子開始,下面我們從驗證電話號碼開始,一步一步的了解正則表達式。

在我們國家,電話號碼(如:0379-65624150)通常包含3到4為以0開頭的區(qū)號和一個7或8為的號碼,中間通常以連字符'-'隔開。在這個例子中,首先我們要介紹一個元字符/d,它用來匹配一個0到9的數(shù)字。這個正則表達式可以寫成:^0/d{2,3}-/d{7,8}$

我們來對他進行分析,0匹配數(shù)字“0”,/d匹配一個數(shù)字,{2,3}表示重復(fù)2到3次,-只匹配”-”自身,接下來的/d同樣匹配一個數(shù)字,而 {7,8}則表示重復(fù)7到8次。當然,電話號碼還可以寫成 (0379)65624150,這里就交給讀者完成。

 元字符

在上面的例子中,我們接觸到了一個元字符/d,正如你所想的,正則表達式還有很多像/d一樣的元字符,下表列出了一些常用的元字符:

c,正則表達式

表一常用的元字符

 轉(zhuǎn)義字符

   如果你想查找元字符本身的話,比如你查找.,或者*,就出現(xiàn)了問題:你沒辦法指定它們,因為它們會被解釋成別的意思。這時你就得使用/來取消這些字符的特殊意義。因此,你應(yīng)該使用/.和/*。當然,要查找/本身,你也得用//.

例如:unibetter/.com匹配unibetter.com,C://Windows匹配C:/Windows。

 限定符

限定符又叫重復(fù)描述字符,表示一個字符要出現(xiàn)的次數(shù)。比如我們在匹配電話號碼時使用的{3,4}就表示出現(xiàn)3到4次。常用的限定符有:

c,正則表達式

表二常用的限定符

正則表達式在程序設(shè)計中有著重要的位置,它經(jīng)常被用于處理字符串信息,下面是正則常用的一些實例。

//驗證電話號碼<br>public bool IsTelephone(string str_telephone){return System.Text.RegularExpressions. Regex.IsMatch(str_telephone, @"^(/d{3,4}-)?/d{6,8}$");}//驗證密碼public bool IsPassword(string str_password){return System.Text.RegularExpressions. Regex.IsMatch(str_password, @"[A-Za-z]+[0-9]");}//驗證郵政編碼public bool IsPostalcode(string str_postalcode){return System.Text.RegularExpressions.Regex.IsMatch(str_postalcode, @"^/d{6}$");}//驗證手機號碼public bool IsHandset(string str_handset){return System.Text.RegularExpressions.Regex. IsMatch(str_handset, @"^[1][3-5]/d{9}$");}//驗證身份證public bool IsIDcard(string str_idcard){return System.Text.RegularExpressions.Regex. IsMatch(str_idcard, @"(^/d{18}$)|(^/d{15}$)");}//驗證小數(shù)格式public bool IsDecimal(string str_decimal){return System.Text.RegularExpressions.Regex. IsMatch(str_decimal, @"^[0-9]+/.[0-9]{2}$");}//驗證月份public bool IsMonth(string str_Month){return System.Text.RegularExpressions.Regex. IsMatch(str_Month, @"^(0?[[1-9]|1[0-2])$");}//驗證天數(shù)public bool IsDay(string str_day){return System.Text.RegularExpressions.Regex. IsMatch(str_day, @"^((0?[1-9])|((1|2)[0-9])|30|31)$");}//驗證是否為數(shù)字public bool IsNumber(string str_number){return System.Text.RegularExpressions.Regex. IsMatch(str_number, @"^[0-9]*$");}//驗證密碼長度public bool IsPasswLength(string str_Length){return System.Text.RegularExpressions.Regex. IsMatch(str_Length, @"^/d{6,18}$");}//驗證正整數(shù)public bool IsIntNumber(string str_intNumber){return System.Text.RegularExpressions.Regex. IsMatch(str_intNumber, @"^/+?[1-9][0-9]*$");}//驗證大小寫public bool IsUpChar(string str_UpChar){return System.Text.RegularExpressions.Regex. IsMatch(str_UpChar, @"^[A-Z]+$");}public bool IsLowerChar(string str_UpChar){return System.Text.RegularExpressions.Regex. IsMatch(str_UpChar, @"^[a-z]+$");}//驗證是否為字母public bool IsLetter(string str_Letter){return System.Text.RegularExpressions.Regex. IsMatch(str_Letter, @"^[A-Za-z]+$");}//驗證是否為中文public bool IsChinese(string str_chinese){return System.Text.RegularExpressions.Regex. IsMatch(str_chinese, @"^[/u4e00-/u9fa5]{1,}$");}//驗證郵箱public bool IsEmail(string str_Email){return System.Text.RegularExpressions.Regex.IsMatch(str_Email, @"^(([/w/.]+)@(([[0-9]{1,3}/.[0-9]{1,3}/.[0-9]{1,3}))|((/w+/.?)+)@([a-zA-Z]{2,4}|[0-9]{1,3})(/.[a-zA-Z]{2,4}))$");}//驗證IPpublic bool IPCheck(string IP){string num = @"(25[0-5]|2[0-4]/d|[0-1]/d{2}|[1-9]?/d)"; return Regex.IsMatch(IP, ("^" + num + "//." + num + "//." + num + "//." + num + "$"));}//驗證Urlpublic bool IsUrl(string str_url){return System.Text.RegularExpressions.Regex.IsMatch(str_url, @"http(s)?://([/w-]+/.)+[/w-]+(/[/w- ./?%&=]*)?");}

雖然現(xiàn)在很多驗證都由前端,但是掌握正則表達式會讓你在程序開發(fā)過程中快速解決很多東西,特別是在處理字符串的時候,算是比較全面的正則用法,如果有需要可聯(lián)系我,可直接運行的源碼。

以上所述是小編給大家介紹的C#中常用的正則表達式小結(jié),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對VEVB武林網(wǎng)網(wǎng)站的支持!


注:相關(guān)教程知識閱讀請移步到c#教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 迁安市| 丘北县| 淮滨县| 古丈县| 永和县| 英吉沙县| 开江县| 连城县| 纳雍县| 深泽县| 准格尔旗| 调兵山市| 进贤县| 紫金县| 莱西市| 新余市| 闻喜县| 五大连池市| 南部县| 孟州市| 兴安盟| 岳普湖县| 城口县| 景东| 龙井市| 屏南县| 崇明县| 桦川县| 南通市| 安新县| 长泰县| 集贤县| 芜湖市| 乌鲁木齐市| 安平县| 遵义市| 体育| 栾城县| 铜鼓县| 永善县| 桂阳县|