1. 程式人生 > >關於C#正則表示式MatchCollection類的總結

關於C#正則表示式MatchCollection類的總結

認識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\-\.,@?^=%&amp;:/~\+#]*[\w\-\@?^=%&amp;/~\+#])";

   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 類包含來自單個子表示式捕獲的結果。