認識MatchCollection 類
表示通過以迭代方式將正則表達式模式應用於輸入字符串所找到的成功匹配的集合。
命名空間: System.Text.RegularExpressions
屬性:Count 獲取匹配項的數目。
方法:ToString 返回表示當前對象的字符串。
備注:
該集合是不可變(只讀)的,並且沒有公共構造函數。 Regex.Matches 方法返回 MatchCollection 對象。
以上來自微軟的相關介紹――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
C#正則表達式中MatchCollection類的用法
MatchCollection 類表示成功的非重疊匹配的只讀的集合,MatchCollection 的實例是由 Regex.Matches 屬性返回的,下面的實例說明了通過在輸入字符串中找到所有與Regex中指定的匹配並填充 MatchCollection。
提供兩個例子:
1、MatchCollection mc;
Regex r = new Regex("match");
mc = r.Matches("matchcollectionregexmatchs");
for (int i = 0; i < mc.Count; i++)
{
Response.Write( mc[i].Value + " POS:" + mc[i].Index.ToString() + "<br>");
}
該實例運行的結果是:
match POS:0
match POS:20
2、public static string GetUrl(string text)
{
string pattern = @"(http|ftp|https):\/\/[\w]+(.[\w]+)([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])";
MatchCollection matchs;
matchs = Regex.Matches(text,pattern, RegexOptions.IgnoreCase | RegexOptions.Compiled);
foreach (Match m in matchs)
{
text = text.Replace(m.ToString(), "<a target=\"_new\" href=\"" + m.ToString() + "\">" + m.ToString() + "</a>");
}
return text;
}
Mark.
--------------------------------------------------------------------
其它常見C#正則表達式類:
Regex 類表示不可變(只讀)的正則表達式。它還包含各種靜態方法,允許在不顯式創建其他類的實例的情況下使用其他正則表達式類。
Match 類表示正則表達式匹配操作的結果。Match 類的 Match.Success 匹配是否成功。Match.Index 返回第一個匹配的位置。
MatchCollection 類表示成功的【非重疊】匹配項的序列。MatchCollection 的實例是由 Regex.Matches 方法返回的。
GroupCollection 類表示被捕獲的組的集合,並在單個匹配項中返回該捕獲組的集合。GroupCollection 的實例在 Match.Groups 屬性返回的集合中返回。
CaptureCollection 類表示捕獲的子字符串的序列,並返回由單個捕獲組所執行的捕獲集。由於限定符,捕獲組可以在單個匹配中捕獲多個字符串。Captures 屬性(CaptureCollection 類的對象)作為 Match 和 Group 類的成員提供,目的是便於對捕獲的子字符串的集合進行訪問。
Group 類表示來自單個捕獲組的結果。因為 Group 可以在單個匹配中捕獲零個、一個或更多的字符串(使用限定符),所以它包含 Capture 對象的集合。因為 Group 繼承自 Capture,所以可以直接訪問最后捕獲的子字符串(Group 實例本身等價於 Captures 屬性返回的集合的最后一項)。
Capture 類包含來自單個子表達式捕獲的結果。