Regex 類表示只讀正則表達式
Regex 類包含各類靜態方法,容許在不顯式實例化其餘類的對象的狀況下使用其餘正則表達式類。如下代碼示例建立了 Regex 類的實例並在初始化對象時定義一個簡單的正則表達式。請注意,使用了附加的反斜槓做爲轉義字符,它將 \s 匹配字符類中的反斜槓指定爲原義字符。正則表達式
Regex r; // 聲明一個 Regex類的變量 r = new Regex("\\s2000"); // 定義表達式
Match 類表示正則表達式匹配操做的結果
如下示例使用 Regex 類的 Match 方法返回 Match 類型的對象,以便找到輸入字符串中第一個匹配。此示例使用 Match 類的 Match.Success 屬性來指示是否已找到匹配。數組
Regex r = new Regex("abc"); // 定義一個Regex對象實例 Match m = r.Match("123abc456"); // 在字符串中匹配 if (m.Success) { Console.WriteLine("Found match at position " + m.Index); //輸入匹配字符的位置 }
MatchCollection 類表示非重疊匹配的序列
該集合爲只讀的,而且沒有公共構造函數。MatchCollection 的實例是由 Regex.Matches 屬性返回的。使用 Regex 類的 Matches 方法,經過在輸入字符串中找到的全部匹配填充 MatchCollection。下面代碼示例演示瞭如何將集合複製到一個字符串數組(保留每一匹配)和一個整數數組(指示每一匹配的位置)中。函數
MatchCollection mc; String[] results = new String[20]; int[] matchposition = new int[20]; Regex r = new Regex("abc"); //定義一個Regex對象實例 mc = r.Matches("123abc4abcd"); for (int i = 0; i < mc.Count; i++) //在輸入字符串中找到全部匹配 { results[i] = mc[i].Value; //將匹配的字符串添在字符串數組中 matchposition[i] = mc[i].Index; //記錄匹配字符的位置 }
GroupCollection 類表示捕獲的組的集合
該集合爲只讀的,而且沒有公共構造函數。GroupCollection 的實例在 Match.Groups 屬性返回的集合中返回。下面的控制檯應用程序查找並輸出由正則表達式捕獲的組的數目。spa
using System; using System.Text.RegularExpressions; public class RegexTest { public static void RunTest() { Regex r = new Regex("(a(b))c"); //定義組 Match m = r.Match("abdabc"); Console.WriteLine("Number of groups found = " + m.Groups.Count); } public static void Main() { RunTest(); } }
該示例產生下面的輸出:Number of groups found = 3code