WEB开发网
开发学院软件开发C语言 C#正则表达式编程(三):Match 类和Group类用法 阅读

C#正则表达式编程(三):Match 类和Group类用法

 2010-09-30 22:44:08 来源:WEB开发网   
核心提示: 在上面的代码中是采用了Regex类的Match()方法,调用这种方法返回的是一个Match,C#正则表达式编程(三):Match 类和Group类用法(3),要处理分析全部的字符串,还需要在while循环的中通过Match类的NextMatch()方法返回下一个可能成功的匹配(可通过Match类

C#正则表达式编程(三):Match 类和Group类用法 

在上面的代码中是采用了Regex类的Match()方法,调用这种方法返回的是一个Match,要处理分析全部的字符串,还需要在while循环的中通过Match类的NextMatch()方法返回下一个可能成功的匹配(可通过Match类的Success属性来判断是否成功匹配)。上面的代码还可以写成如下形式:

/// <summary>
/// 使用Regex类的Matches方法所有所有的匹配
/// </summary>
public void Matches()
{
        //要匹配的字符串
        string text = "1A 2B 3C 4D 5E 6F 7G 8H 9I 10J 11Q 12J 13K 14L 15M 16N ffee80 #800080";
        //正则表达式
        string pattern = @"((\d+)([a-z]))\s+";
        //使用RegexOptions.IgnoreCase枚举值表示不区分大小写
        Regex r = new Regex(pattern, RegexOptions.IgnoreCase);
        //使用正则表达式匹配字符串,返回所有的匹配结果
        MatchCollection matchCollection = r.Matches(text);
        foreach (Match m in matchCollection)
        {
                //显示匹配开始处的索引值和匹配到的值
                System.Console.WriteLine("Match=[" + m + "]");
                CaptureCollection cc = m.Captures;
                foreach (Capture c in cc)
                {
                        Console.WriteLine("\tCapture=[" + c + "]");
                }
                for (int i = 0; i < m.Groups.Count; i++)
                {
                        Group group = m.Groups[i];
                        System.Console.WriteLine("\t\tGroups[{0}]=[{1}]", i, group);
                        for (int j = 0; j < group.Captures.Count; j++)
                        {
                                Capture capture = group.Captures[j];
                                Console.WriteLine("\t\t\tCaptures[{0}]=[{1}]", j, capture);
                        }
                }
        }
}

上一页  1 2 3 4 5 6  下一页

Tags:正则 表达式 编程

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接