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

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

 2010-09-30 22:44:08 来源:WEB开发网   
核心提示:前面两篇讲述了正则表达式的基础和一些简单的例子,这篇将稍微深入一点探讨一下正则表达式分组,C#正则表达式编程(三):Match 类和Group类用法,在.NET中正则表达式分组是用Math类来代表的,首先先看一段代码:///<summary>///显示Match内多个Group的例子///</summ

前面两篇讲述了正则表达式的基础和一些简单的例子,这篇将稍微深入一点探讨一下正则表达式分组,在.NET中正则表达式分组是用Math类来代表的。

首先先看一段代码:

/// <summary>
/// 显示Match内多个Group的例子
/// </summary>
public void ShowStructure()
{
        //要匹配的字符串
        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);
        //使用正则表达式匹配字符串,仅返回一次匹配结果
        Match m = r.Match(text);
        while (m.Success)
        {
                //显示匹配开始处的索引值和匹配到的值
                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);
                        }
                }
                //进行下一次匹配.
                m = m.NextMatch();
        }
}

1 2 3 4 5 6  下一页

Tags:正则 表达式 编程

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