[数据结构与算法]模式匹配与文本处理

本文介绍如何使用正则表达式的命名组来捕获特定的数据,如日期和年龄,并通过C#代码演示如何获取这些捕获。

当正则表达式匹配子表达式的时候,产生了一个被称为是Capture的对象,而且会把此对象添加到名为CapturesCollection的集合里面。当在正则表达中使用命名组的时候,这个组就有自己的捕获集合。

为了检索用了命名组的正则表达式所收集的捕获,就要调用来自match对象group属性的Captures属性。在这个实例中是很容易理解的。利用前面的例子,下面代码返回了在字符串中找到的所有日期和年龄,而且日期和年龄是完全分组的:

     

            string dates = "08/14/57 46 02/25/59 45 06/05/85 18 03/12/88 16 09/09/90 13";
            string regExp = "(?<dates>(\\d{2}/\\d{2}/\\d{2}))\\s(?<ages>(\\d{2}))\\s";

            MatchCollection matchSet = Regex.Matches(dates, regExp);
            Console.WriteLine();
            foreach (Match aMatch in matchSet)
            {
                foreach (Capture aCapture in aMatch.Groups["dates"].Captures)
                Console.WriteLine("date capture:{0}", aCapture.ToString());
                foreach (Capture aCapture in aMatch.Groups["ages"].Captures)
                    Console.WriteLine("age capture:{0}", aCapture.ToString());
            }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

厦门德仔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值