c#(asp.net)正則表達式在編程開發當中是非常重要的,而對一些程序員又容易被忽略,這主要是對於常用的c#(asp.net)正則表達式可以在網上搜索到。但對於一個高級程序員來說,這是必須得熟練掌握的。掌握c#(asp.net)正則表達式的方法其實簡單,我們只要熟悉其語法,然後記住幾個常用的c#(asp.net)正則表達式。
c#(asp.net)正則表達式中常見語法:字符匹配,重復匹配,字符定位,轉義匹配,字符分組,字符替換和字符決策。對於快速入門的人就請記住:字符匹配語法,重復匹配語法,字符定位語法,轉義匹配語法。對這四個語法的詳細文檔如下。
字符匹配語法
字符語法
語法解釋
語法例子
d
匹配數字(0~9)
‘d’匹配8,不匹配12;
D
匹配非數字
‘D’匹配c,不匹配3;
w
匹配任意單字符
‘ww’ 匹配A3,不匹配@3;
W
匹配非單字符
‘W’匹配@,不匹配c;
s
匹配空白字符
‘dsd’匹配3 d,不匹配abc;
S
匹配非空字符
‘SSS’匹配A#4,不匹配3 d;
.
匹配任意字符
‘....’匹配A$ 5,不匹配換行;
[…]
匹配括號中任意字符
[b-d]匹配b、c、d, 不匹配e;
[^…]
匹配非括號字符
[^b-z]匹配a,不匹配b-z的字符;
重復匹配語法
重復語法
語法解釋
語法例子
{n}
匹配n次字符
d{3}匹配ddd,不匹配dd或dddd
{n,}
匹配n次和n次以上
w{2}匹配ww和www以上,不匹配w
{n,m}
匹配n次上m次下
s{1,3}匹配s,ss,sss,不匹配ssss
?
匹配0或1次
5?匹配5或0,不匹配非5和0
+
匹配一次或多次
S+匹配一個以上S,不匹配非一個以上S
*
匹配0次以上
W*匹配0以上W,不匹配非N*W
字符定位語法
重復語法
語法解釋
語法例子
^
定位後面模式開始位置
$
前面模式位於字符串末端
A
前面模式開始位置
z
前面模式結束位置
前面模式結束位置(換行前)
匹配一個單詞邊界
B
匹配一個非單詞邊界
轉義匹配語法
c#(asp.net)正則表達式Regex類使用實例:
例1:判斷長沙地區的電話號碼(使用IsMatch())
分析:長沙地區的電話號碼是以0731的區號,後面是8位數字。正則表達式寫法則為:0731\d{8}
代碼:
string Regextest="0731\d{8}";
string testphone="07323452343343";
if(Regex.IsMatch(testphone,Regextest))
{
Response.write("正確的長沙地區號碼!");
}
else
{
Response.write("非正確的長沙地區號碼!");
}
例2:替換文本中的郵件中的字符@,替換為AT(使用Replace())
分析:首先判斷文本中的郵件格式,然後把郵件中的@替換為AT。正則表達式寫法則為:判斷郵件格式:"http://www.cnblogs.com/ceoliujia/admin/file://w{1,}@//w{1,}//.";
代碼:
string Regextest="w{1,}@\@\w{1,}\.";
string Email="lanqilins Email is [email protected]";
if(Regex.Ismath(Email,Regextest))
{
Regex.Replace(Email,"@","AT");
}
例3:讀取所有群發郵件中的所有郵件地址(使用Split())
分析:在群發郵件存放的文本當中以每行一個郵件地址,既采用
作為分割符,需要通過
進行折分。
代碼:
string RegexTest="
";
string allemail="[email protected]
[email protected]";
string[] singemail=Regex.Split(allemail,RegexTest);
foreach(string str in singemail)
{
Response.Write(str.Tostring());
}
常用c#(asp.net)正則表達式實例:
驗證數字:"^[0-9]*$"
驗證字母:"^[A-Za-z]+$"。
驗證郵件:"^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$"
驗證漢字:"^[u4e00-u9fa5]{0,}$"