Csharp/C Sharp/Regular Expressions/Group Capture
Illustrates the use of groups and captures
<source lang="csharp"> /* Mastering Visual C# .NET by Jason Price, Mike Gunderloy Publisher: Sybex; ISBN: 0782129110
- /
/*
ExampleC_2.cs illustrates the use of groups and captures
- /
using System; using System.Text.RegularExpressions; public class ExampleC_2 {
public static void Main() { // create a string containing area codes and phone numbers string text = "(800) 555-1211\n" + "(212) 555-1212\n" + "(506) 555-1213\n" + "(650) 555-1214\n" + "(888) 555-1215\n"; // create a string containing a regular expression to // match an area code; this is a group of three numbers within // parentheses, e.g. (800) // this group is named "areaCodeGroup" string areaCodeRegExp = @"(?<areaCodeGroup>\(\d\d\d\))"; // create a string containing a regular expression to // match a phone number; this is a group of seven numbers // with a hyphen after the first three numbers, e.g. 555-1212 // this group is named "phoneGroup" string phoneRegExp = @"(?<phoneGroup>\d\d\d\-\d\d\d\d)"; // create a MatchCollection object to store the matches MatchCollection myMatchCollection = Regex.Matches(text, areaCodeRegExp + " " + phoneRegExp); // use a foreach loop to iterate over the Match objects in // the MatchCollection object foreach (Match myMatch in myMatchCollection) { // display the "areaCodeGroup" group match directly Console.WriteLine("Area code = " + myMatch.Groups["areaCodeGroup"]); // display the "phoneGroup" group match directly Console.WriteLine("Phone = " + myMatch.Groups["phoneGroup"]); // use a foreach loop to iterate over the Group objects in // myMatch.Group foreach (Group myGroup in myMatch.Groups) { // use a foreach loop to iterate over the Capture objects in // myGroup.Captures foreach (Capture myCapture in myGroup.Captures) { Console.WriteLine("myCapture.Value = " + myCapture.Value); } } } }
}
</source>