.NET正則表達式基礎入門(一)


字符組

  正則表達式的字符組十分簡單,就是列出你所想要匹配的字符。閱讀本章前,建議先下載我於CSDN上傳的示例代碼,下載無需分數,下載鏈接

1.普通字符組

  普通字符組,列出所有你需要匹配的字符。 例如,我想要匹配數字,則可以寫出以下正則表達式"[0123456789]"。你覺得"[0123456789]"太麻煩了,如果我要匹配26個英文字符,那不是要全列出來?實際上並不需要這么麻煩。可以使用范圍的形式,例如,匹配10個數字可以寫成"[0-9]",匹配26個小寫英文字母可以寫成"[a-z]",匹配26個英文字母(不分大小寫的)可以寫成"[a-zA-Z]"。是不是簡單了很多?

  .NET提供Regex類用於生成正則表達式對象。IsMatch方法是用於檢查輸入字符串是否匹配正則表達式,返回值為bool。  

//使用正則表達式前請添加該命名空間
using System.Text.RegularExpressions;

//第一個參數為你要驗證的字符串,第二個參數為正則表達式
Regex.IsMatch("5","[0123456789]");//true
Regex.IsMatch("a","[0123456789]");//false
Regex.IsMatch("5","[0-9]");//true
Regex.IsMatch("a","[a-z]");//true

 

2.排除型字符組

  排除型字符組,列出所有你不想要匹配的字符。例如,我不想要匹配數字,則可以寫出以下正則表達式"[^0-9]",注意括號前面多了個'^'。

//第一個參數為你要驗證的字符串,第二個參數為正則表達式
Regex.IsMatch("5","[^0-9]");//false
Regex.IsMatch("a","[^0-9]");//true

 

3.字符組簡記法

  有人說,上面的字符組還是太長了,能不能再縮短點。程序員們總可以找到偷懶的辦法,因此可以用以下正則表達式代替。"\d"代表匹配數字,和"[0-9]"是一樣的。"\w"代表匹配文字,和"[0-9a-zA-Z_]"是一樣的。注意在.NET中,"\w"還能匹配中文,韓文等非英文字母。"\s"匹配一些空格符和換行符,如"\t","\r","\n"等等。最后值得注意的是,請注意這些簡記法的大小寫,因為"\d"和"\D"是不一樣的,"\d"匹配數字,而"\D"匹配"\d"所不能匹配的所有字符,他們是相反的。"\w","\s"也一樣。

 

4.字符組運算

  如果我們要匹配那些非元音字母怎么辦?即匹配除(aeiou)的字母。這里可以使用字符組運算,在不同的編程語言里,字符組運算的語法是不一樣的,這里取決於編程的實現。如,在.NET中,上述例子我們可以使用"[a-z-[aeiou]]"來匹配。"a-z"是匹配26個字母的,然后減去一個普通字符組"[aeiou]"。

//第一個參數為你要驗證的字符串,第二個參數為正則表達式
Regex.IsMatch("a","[a-z-[aeiou]]");//false
Regex.IsMatch("b","[a-z-[aeiou]]");//true

  

  字符組暫時介紹這么多,謝謝!


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com