程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#中經常使用的正則表達式實例

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

編輯:C#入門知識

C#中經常使用的正則表達式實例。本站提示廣大學習愛好者:(C#中經常使用的正則表達式實例)文章只能為提供參考,不一定能成為您想要的結果。以下是C#中經常使用的正則表達式實例正文


今朝為止,很多編程說話和對象都包括對正則表達式的支撐,C#也不破例,C#基本類庫中包括有一個定名空間(System.Text.RegularExpressions)和一系列可以充足施展規矩表達式威力的類(Regex、Match、Group等)。那末,甚麼是正則表達式,怎樣界說正則表達式呢?

正則表達式基本

 甚麼是正則表達式

   在編寫字符串的處置法式時,常常會有查找相符某些龐雜規矩的字符串的須要。正則表達式就是用於描寫這些規矩的對象。換句話說,正則表達式就是記載文本規矩的代碼。
    平日,我們在應用WINDOWS查找文件時,會應用通配符(*和?)。假如你想查找某個目次下的一切Word文檔時,你便可以應用*.doc停止查找,在這裡,*就被說明為隨意率性字符串。和通配符相似,正則表達式也是用來停止文本婚配的對象,只不外比起通配符,它能更准確地描寫你的需求——固然,價值就是更龐雜。

   一個簡略的例子——驗證德律風號碼

進修正則表達式的最好辦法是從例子開端,上面我們從驗證德律風號碼開端,一步一步的懂得正則表達式。

在我們國度,德律風號碼(如:0379-65624150)平日包括3到4為以0開首的區號和一個7或8為的號碼,中央平日以連字符'-'離隔。在這個例子中,起首我們要引見一個元字符\d,它用來婚配一個0到9的數字。這個正則表達式可以寫成:^0\d{2,3}-\d{7,8}$

我們來對他停止剖析,0婚配數字“0”,\d婚配一個數字,{2,3}表現反復2到3次,-只婚配”-”本身,接上去的\d異樣婚配一個數字,而 {7,8}則表現反復7到8次。固然,德律風號碼還可以寫成 (0379)65624150,這裡就交給讀者完成。

 元字符

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

表一經常使用的元字符

 本義字符

   假如你想查找元字符自己的話,好比你查找.,或許*,就湧現了成績:你沒方法指定它們,由於它們會被說明成其余意思。這時候你就得應用\來撤消這些字符的特別意義。是以,你應當應用\.和\*。固然,要查找\自己,你也得用\\.

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

 限制符

限制符又叫反復描寫字符,表現一個字符要湧現的次數。好比我們在婚配德律風號碼時應用的{3,4}就表現湧現3到4次。經常使用的限制符有:

表二經常使用的限制符

正則表達式在法式設計中有側重要的地位,它常常被用於處置字符串信息,上面是正則經常使用的一些實例。

//驗證德律風號碼<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}$)");
}
//驗證小數格局
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])$");
}
//驗證天數
public bool IsDay(string str_day)
{
return System.Text.RegularExpressions.Regex. 
IsMatch(str_day, @"^((0?[1-9])|((1|2)[0-9])|30|31)$");
}
//驗證能否為數字
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}$");
}
//驗證正整數
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- ./?%&=]*)?");
}

固然如今許多驗證都由前端,然則控制正則表達式會讓你在法式開辟進程中疾速處理許多器械,特殊是在處置字符串的時刻,算是比擬周全的正則用法,假如有須要可接洽我,可直接運轉的源碼。

以上所述是小編給年夜家引見的C#中經常使用的正則表達式小結,願望對年夜家有所贊助,假如年夜家有任何疑問請給我留言,小編會實時答復年夜家的。在此也異常感激年夜家對網站的支撐!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved