Export (0) Print
Expand All

Group Class

Updated: August 2009

Represents the results from a single capturing group.

Namespace:  System.Text.RegularExpressions
Assembly:  System (in System.dll)

[SerializableAttribute]
public class Group : Capture

A capturing group can capture zero, one, or more strings in a single match because of quantifiers. (For more information, see Quantifiers.) All the substrings matched by a single capturing group are available from the Group.Captures property. Information about the last substring captured can be accessed directly from the Value and Index properties. (That is, the Group instance is equivalent to the last item of the collection returned by the Captures property, which reflects the last capture made by the capturing group.)

An example helps to clarify this relationship between a Group object and the System.Text.RegularExpressions.CaptureCollection that is returned by the Captures property. The regular expression pattern (\b(\w+?)[,:;]?\s?)+[?.!] matches entire sentences. The regular expression is defined as shown in the following table.

Pattern

Description

\b

Begin the match at a word boundary.

(\w+?)

Match one or more word characters, but as few characters as possible. This is the second (inner) capturing group. (The first capturing group includes the \b language element.)

[,:;]?

Match zero or one occurrence of a comma, colon, or semicolon.

\s?

Match zero or one occurrence of a white-space character.

(\b(\w+?)[,:;]?\s?)+

Match the pattern consisting of a word boundary, one or more word characters, a punctuation symbol, and a white-space character one or more times. This is the first capturing group.

[?.!]

Match any occurrence of a period, question mark, or exclamation point.

In this regular expression pattern, the subpattern (\w+?) is designed to match multiple words within a sentence. However, the value of the Group object represents only the last match that (\w+?) captures, whereas the Captures property returns a CaptureCollection that represents all captured text. As the output shows, the CaptureCollection for the second capturing group contains four objects. The last of these corresponds to the Group object.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string pattern = @"(\b(\w+?)[,:;]?\s?)+[?.!]";
      string input = "This is one sentence. This is a second sentence.";

      Match match = Regex.Match(input, pattern);
      Console.WriteLine("Match: " + match.Value);
      int groupCtr = 0;
      foreach (Group group in match.Groups)
      {
         groupCtr++;
         Console.WriteLine("   Group {0}: '{1}'", groupCtr, group.Value);
         int captureCtr = 0;
         foreach (Capture capture in group.Captures)
         {
            captureCtr++;
            Console.WriteLine("      Capture {0}: '{1}'", captureCtr, capture.Value);
         }
      }   
   }
}
// The example displays the following output: 
//       Match: This is one sentence. 
//          Group 1: 'This is one sentence.' 
//             Capture 1: 'This is one sentence.' 
//          Group 2: 'sentence' 
//             Capture 1: 'This ' 
//             Capture 2: 'is ' 
//             Capture 3: 'one ' 
//             Capture 4: 'sentence' 
//          Group 3: 'sentence' 
//             Capture 1: 'This' 
//             Capture 2: 'is' 
//             Capture 3: 'one' 
//             Capture 4: 'sentence'

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC, Xbox 360, Zune

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Supported in: 3.5, 2.0, 1.0

XNA Framework

Supported in: 3.0, 2.0, 1.0

Date

History

Reason

August 2009

Expanded the Remarks section.

Information enhancement.

Community Additions

ADD
Show:
© 2014 Microsoft