C#基础之C#中的正则表达式

发表于:2011-7-12 10:37

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:51Testing软件测试网采编

分享:

  3.4 GroupCollection 类表示捕获的组的集合

  该集合为只读的,并且没有公共构造函数。GroupCollection 的实例在 Match.Groups 属性返回的集合中返回。下面的控制台应用程序查找并输出由正则表达式捕获的组的数目。

  1. using System;  
  2. using System.Text.RegularExpressions;  
  3. public class RegexTest  
  4. {  
  5. public static void RunTest()  
  6. {  
  7. Regex r = new Regex("(a(b))c"); //定义组  
  8. Match m = r.Match("abdabc");  
  9. Console.WriteLine("Number of groups found = " + m.Groups.Count);  
  10. }  
  11. public static void Main()  
  12. {  
  13. RunTest();  
  14. }  
  15. }

  该示例产生下面的输出:

  Number of groups found = 3

  3.5 CaptureCollection 类表示捕获的子字符串的序列

  由于限定符,捕获组可以在单个匹配中捕获多个字符串。Captures属性(CaptureCollection 类的对象)是作为 Match 和 group 类的成员提供的,以便于对捕获的子字符串的集合的访问。例如,如果使用正则表达式 ((a(b))c)+(其中 + 限定符指定一个或多个匹配)从字符串"abcabcabc"中捕获匹配,则子字符串的每一匹配的 Group 的 CaptureCollection 将包含三个成员。

  下面的程序使用正则表达式 (Abc)+来查找字符串"XYZAbcAbcAbcXYZAbcAb"中的一个或多个匹配,阐释了使用 Captures 属性来返回多组捕获的子字符串。

  1. using System;  
  2. using System.Text.RegularExpressions;  
  3. public class RegexTest  
  4. {  
  5. public static void RunTest()  
  6. {  
  7. int counter;  
  8. Match m;  
  9. CaptureCollection cc;  
  10. GroupCollection gc;  
  11. Regex r = new Regex("(Abc)+"); //查找"Abc"  
  12. m = r.Match("XYZAbcAbcAbcXYZAbcAb"); //设定要查找的字符串  
  13. gc = m.Groups;  
  14. //输出查找组的数目  
  15. Console.WriteLine("Captured groups = " + gc.Count.ToString());  
  16. // Loop through each group.  
  17. for (int i=0; i < gc.Count; i++) //查找每一个组  
  18. {  
  19. cc = gc.Captures;  
  20. counter = cc.Count;  
  21. Console.WriteLine("Captures count = " + counter.ToString());  
  22. for (int ii = 0; ii < counter; ii++)  
  23. {  
  24. // Print capture and position.  
  25. Console.WriteLine(cc[ii] + " Starts at character " +  
  26. cc[ii].Index); //输入捕获位置  
  27. }  
  28. }  
  29. }  
  30. public static void Main() {  
  31. RunTest();  
  32. }  
  33. }

32/3<123>
价值398元的测试课程免费赠送,填问卷领取吧!

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计

法律顾问:上海漕溪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2023
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号