关于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 类包含来自单个子表达式捕获的结果。

 

转载于:https://www.cnblogs.com/net515/archive/2012/05/30/2527142.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值