NET中的正則表達式是處於 System.Text.RegularExpressions 命名空間中的,該命名空間提供了正則表達式的各種強大的功能。
用的較多的類有:Group、GroupCollection、Match、MatchCollection、Regex
Regex 類表示不可變的正則表達式。
Regex 類包含幾個 static 方法,這些方法和 Regex 對象方法的功能是一樣的。在 .NET Framework 2.0 版中它們有點小區別。在.NET2.0中,將緩存通過調用靜態方法而編譯的正則表達式,而不會緩存通過調用實例方法而編譯的正則表達式。默認情況下,正則表達式引擎將緩存 15 個最近使用的靜態正則表達式。因此在經常用到一組固定的正則表達式時,宜采用靜態方法。
注意:你可以通過設置靜態屬性 Regex.CacheSize 來動態改變已編譯的正則表達式的當前靜態緩存中的最大項數。
至於正則表達式的 字符類 ,在此就不作詳細介紹。只列出幾個常用的。
字符類 說明 [字符分組] 匹配指定字符分組內的任一字符。 [^字符分組] 匹配不在指定字符分組內的任一字符。 [第一個字符-最後一個字符] 匹配字符范圍中的任一字符。 \w 與任何單詞字符匹配。等效於 [a-zA-Z_0-9]。其中"_"表示字符"_"本身。 \W 與任何非單詞字符匹配。等效於 [^a-zA-Z_0-9]。 \s 與任何空白字符匹配。等效於[ \f\n\r\t\v]。注意在"\f"前有一個空格。 \S 與任何非空白字符匹配。等效於[^ \f\n\r\t\v]。 \d 與任何十進制數字匹配。等效於[0-9]。 \D 與任何非數字字符匹配。等效於[^0-9]。下面先介紹Regex 類的常用方法和屬性。
名稱 說明 IsMatch 已重載。 指示正則表達式在輸入字符串中是否找到匹配項。 Match 已重載。 在輸入字符串中搜索正則表達式的匹配項,並將第一個精確結果作為單個 Match 對象返回。 Matches 已重載。 在輸入字符串中搜索正則表達式的所有匹配項並返回所有成功的匹配,就像多次調用 Match 一樣。 Replace 已重載。 在指定的輸入字符串內,使用指定的替換字符串替換與某個正則表達式模式匹配的字符串。 Split 已重載。 在由正則表達式匹配項定義的位置將輸入字符串拆分為一個子字符串數組。
名稱 說明 CacheSize 獲取或設置已編譯的正則表達式的當前靜態緩存中的最大項數。 Options 返回傳入 Regex 構造函數的選項。 RightToLeft 獲取一個值,該值指示正則表達式是否從右向左進行搜索。其中Options是RegexOptions 枚舉,它提供用於設置正則表達式選項。
注意此選項並非只能選其一,而是可以通過按位或符號"|"實現多個選項,比如:RegexOptions.Compiled | RegexOptions.IgnoreCase 是要求正則表達式既要編譯為程序集,又要忽略大小寫。
下面將通過實例來介紹各種方法的使用。
非負整數(正整數)
正整數
非正整數(負整數)
負整數
整數
非負浮點數(正浮點數)
正浮點數
非正浮點數(負浮點數)
負浮點數
浮點數
由個英文字母組成的字符串
由個英文字母的大寫組成的字符串
由個英文字母的小寫組成的字符串
由數字和個英文字母組成的字符串
由數字、個英文字母或者下劃線組成的字符串
地址
只能輸入數字:“”
只能輸入位的數字:“”
只能輸入至少位數字:“”
只能輸入位的數字:“”
只能輸入零和非零開頭的數字:“”
只能輸入有兩位小數的正實數:“”
只能輸入有位小數的正實數:“”
只能輸入非零的正整數:“”
只能輸入非零的負整數:“”
只能輸入長度為的字符:“”
只能輸入由個英文字母組成的字符串:“”
只能輸入由個大寫英文字母組成的字符串:“”
只能輸入由個小寫英文字母組成的字符串:“”
只能輸入由數字和個英文字母組成的字符串:“”
只能輸入由數字、個英文字母或者下劃線組成的字符串:“”
驗證用戶密碼“”正確格式為:以字母開頭,長度在之間,
只能包含字符、數字和下劃線。
驗證是否含有等字符:“”
只能輸入漢字:“”
驗證地址:“”
驗證:“”
驗證電話號碼:“”
正確格式為:“”,“”,“”,
“”,“”,“”。
驗證身份證號(位或位數字):“”
驗證一年的個月:“”正確格式為:“”“”和“”“”
驗證一個月的天:“”
正確格式為:“”“”和“”“”。