欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#中常用的正則表達(dá)式實例

 更新時間:2016年10月13日 09:42:59   作者:蝦BB  
正則表達(dá)式在程序設(shè)計中有著重要的位置,它經(jīng)常被用于處理字符串信息,下面是C#中常用的正則表達(dá)式實例,感興趣的朋友一起看看吧

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

正則表達(dá)式基礎(chǔ)

 什么是正則表達(dá)式

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

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

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

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

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

 元字符

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

表一常用的元字符

 轉(zhuǎn)義字符

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

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

 限定符

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

表二常用的限定符

正則表達(dá)式在程序設(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}$");
}
//驗證手機(jī)號碼
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}))$");
}
//驗證IP
public 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 + "$"));
}
//驗證Url
public bool IsUrl(string str_url)
{
return System.Text.RegularExpressions.Regex.IsMatch(str_url, 
@"http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?");
}

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

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

相關(guān)文章

  • winform導(dǎo)出dataviewgrid數(shù)據(jù)為excel的方法

    winform導(dǎo)出dataviewgrid數(shù)據(jù)為excel的方法

    這篇文章主要介紹了winform導(dǎo)出dataviewgrid數(shù)據(jù)為excel的方法,可實現(xiàn)將dataViewGrid視圖中的數(shù)據(jù)導(dǎo)出為excel格式的功能,非常具有實用價值,需要的朋友可以參考下
    2015-01-01
  • C#的循環(huán)語句集錦及案例詳解

    C#的循環(huán)語句集錦及案例詳解

    這篇文章主要介紹了C#中的基本循環(huán):while循環(huán)、for循環(huán)和foreach循環(huán),大家都知道循環(huán)結(jié)構(gòu)可以簡化程序編碼,更好地實現(xiàn)理想的效果,并結(jié)合案例給大家講解,需要的朋友可以參考下
    2015-07-07
  • C#使用系統(tǒng)方法發(fā)送異步郵件完整實例

    C#使用系統(tǒng)方法發(fā)送異步郵件完整實例

    這篇文章主要介紹了C#使用系統(tǒng)方法發(fā)送異步郵件實現(xiàn)方法,結(jié)合完整實例形式分析了C#異步調(diào)用與郵件發(fā)送的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2016-07-07
  • C#集合之可觀察集合的用法

    C#集合之可觀察集合的用法

    這篇文章介紹了C#集合之可觀察集合的用法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • .Net中的json操作類用法分析

    .Net中的json操作類用法分析

    這篇文章主要介紹了.Net中的json操作類用法分析,是非常實用的一個技巧,需要的朋友可以參考下
    2014-08-08
  • C#中WebBrowser.DocumentCompleted事件多次調(diào)用問題解決方法

    C#中WebBrowser.DocumentCompleted事件多次調(diào)用問題解決方法

    這篇文章主要介紹了C#中WebBrowser.DocumentCompleted事件多次調(diào)用問題解決方法,本文講解了3種情況和各自情況的解決方法,需要的朋友可以參考下
    2015-01-01
  • 運(yùn)用示例簡單講解C#取消令牌CancellationTokenSource

    運(yùn)用示例簡單講解C#取消令牌CancellationTokenSource

    這篇文章運(yùn)用示例簡單講解C#取消令牌CancellationTokenSource,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • C#信號量用法簡單示例

    C#信號量用法簡單示例

    這篇文章主要介紹了C#信號量用法,結(jié)合簡單C#控制臺應(yīng)用程序形式分析了信號量的功能、定義、調(diào)用、釋放等操作技巧,需要的朋友可以參考下
    2016-07-07
  • 關(guān)于C#反射 你需要知道的

    關(guān)于C#反射 你需要知道的

    這篇文章主要介紹了C#反射的相關(guān)知識,文中講解的非常詳細(xì),代碼幫助大家更好的參考學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06
  • C#實現(xiàn)在匿名方法中捕獲外部變量的方法

    C#實現(xiàn)在匿名方法中捕獲外部變量的方法

    這篇文章主要介紹了C#實現(xiàn)在匿名方法中捕獲外部變量的方法,本文直接給出代碼實例,然后分析了代碼中的一些知識點(diǎn),需要的朋友可以參考下
    2015-03-03

最新評論