Freigeben über


Match.Groups Eigenschaft

Definition

Ruft eine Auflistung von Gruppen ab, die mit dem regulären Ausdruck übereinstimmen.

public:
 virtual property System::Text::RegularExpressions::GroupCollection ^ Groups { System::Text::RegularExpressions::GroupCollection ^ get(); };
public virtual System.Text.RegularExpressions.GroupCollection Groups { get; }
member this.Groups : System.Text.RegularExpressions.GroupCollection
Public Overridable ReadOnly Property Groups As GroupCollection

Eigenschaftswert

Die Zeichengruppen, die mit dem Muster übereinstimmen.

Beispiele

Im folgenden Beispiel wird versucht, ein Muster eines regulären Ausdrucks mit einer Beispielzeichenfolge abzugleichen. Im Beispiel wird die Groups Eigenschaft verwendet, um Informationen zu speichern, die von der Übereinstimmung für die Anzeige auf der Konsole abgerufen werden.

using System;
using System.Text.RegularExpressions;

class Example
{
   static void Main()
   {
      string text = "One car red car blue car";
      string pat = @"(\w+)\s+(car)";

      // Instantiate the regular expression object.
      Regex r = new Regex(pat, RegexOptions.IgnoreCase);

      // Match the regular expression pattern against a text string.
      Match m = r.Match(text);
      int matchCount = 0;
      while (m.Success)
      {
         Console.WriteLine("Match"+ (++matchCount));
         for (int i = 1; i <= 2; i++)
         {
            Group g = m.Groups[i];
            Console.WriteLine("Group"+i+"='" + g + "'");
            CaptureCollection cc = g.Captures;
            for (int j = 0; j < cc.Count; j++)
            {
               Capture c = cc[j];
               System.Console.WriteLine("Capture"+j+"='" + c + "', Position="+c.Index);
            }
         }
         m = m.NextMatch();
      }
   }
}
// This example displays the following output:
//       Match1
//       Group1='One'
//       Capture0='One', Position=0
//       Group2='car'
//       Capture0='car', Position=4
//       Match2
//       Group1='red'
//       Capture0='red', Position=8
//       Group2='car'
//       Capture0='car', Position=12
//       Match3
//       Group1='blue'
//       Capture0='blue', Position=16
//       Group2='car'
//       Capture0='car', Position=21
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim text As String = "One car red car blue car"
      Dim pattern As String = "(\w+)\s+(car)"

      ' Instantiate the regular expression object.
      Dim r As Regex = new Regex(pattern, RegexOptions.IgnoreCase)

      ' Match the regular expression pattern against a text string.
      Dim m As Match = r.Match(text)
      Dim matchcount as Integer = 0
      Do While m.Success
         matchCount += 1
         Console.WriteLine("Match" & (matchCount))
         Dim i As Integer
         For i = 1 to 2
            Dim g as Group = m.Groups(i)
            Console.WriteLine("Group" & i & "='" & g.ToString() & "'")
            Dim cc As CaptureCollection = g.Captures
            Dim j As Integer 
            For j = 0 to cc.Count - 1
              Dim c As Capture = cc(j)
               Console.WriteLine("Capture" & j & "='" & c.ToString() _
                  & "', Position=" & c.Index)
            Next 
         Next 
         m = m.NextMatch()
      Loop
   End Sub
End Module
' This example displays the following output:
'       Match1
'       Group1='One'
'       Capture0='One', Position=0
'       Group2='car'
'       Capture0='car', Position=4
'       Match2
'       Group1='red'
'       Capture0='red', Position=8
'       Group2='car'
'       Capture0='car', Position=12
'       Match3
'       Group1='blue'
'       Capture0='blue', Position=16
'       Group2='car'
'       Capture0='car', Position=21

Hinweise

Ein Muster für reguläre Ausdrücke kann Unterausdrücke enthalten, die durch Einschließen eines Teils des Musters regulärer Ausdrücke in Klammern definiert werden. Jeder solche Unterausdruck bildet eine Gruppe. Die Groups Eigenschaft bietet Zugriff auf Informationen zu diesen Subexpression-Übereinstimmungen. Das Muster (\d{3})-(\d{3}-\d{4})für reguläre Ausdrücke, das mit nordamerikanischen Telefonnummern übereinstimmt, weist beispielsweise zwei Unterausdrücke auf. Der erste besteht aus der Vorwahl, die die ersten drei Ziffern der Telefonnummer erstellt. Diese Gruppe wird vom ersten Teil des regulären Ausdrucks erfasst. (\d{3}) Der zweite besteht aus der einzelnen Telefonnummer, die die letzten sieben Ziffern der Telefonnummer verfasst. Diese Gruppe wird vom zweiten Teil des regulären Ausdrucks erfasst. (\d{3}-\d{4}) Diese beiden Gruppen können dann aus dem GroupCollection Objekt abgerufen werden, das von der Groups Eigenschaft zurückgegeben wird, wie im folgenden Beispiel gezeigt.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string pattern = @"(\d{3})-(\d{3}-\d{4})";
      string input = "212-555-6666 906-932-1111 415-222-3333 425-888-9999";
      MatchCollection matches = Regex.Matches(input, pattern);
      
      foreach (Match match in matches)
      {
         Console.WriteLine("Area Code:        {0}", match.Groups[1].Value);
         Console.WriteLine("Telephone number: {0}", match.Groups[2].Value);
         Console.WriteLine();
      }
      Console.WriteLine();
   }
}
// The example displays the following output:
//       Area Code:        212
//       Telephone number: 555-6666
//       
//       Area Code:        906
//       Telephone number: 932-1111
//       
//       Area Code:        415
//       Telephone number: 222-3333
//       
//       Area Code:        425
//       Telephone number: 888-9999
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim pattern As String = "(\d{3})-(\d{3}-\d{4})"
      Dim input As String = "212-555-6666 906-932-1111 415-222-3333 425-888-9999"
      Dim matches As MatchCollection = Regex.Matches(input, pattern)
      
      For Each match As Match In matches
         Console.WriteLine("Area Code:        {0}", match.Groups(1).Value)
         Console.WriteLine("Telephone number: {0}", match.Groups(2).Value)
         Console.WriteLine()
      Next
      Console.WriteLine()
   End Sub
End Module
' The example displays the following output:
'       Area Code:        212
'       Telephone number: 555-6666
'       
'       Area Code:        906
'       Telephone number: 932-1111
'       
'       Area Code:        415
'       Telephone number: 222-3333
'       
'       Area Code:        425
'       Telephone number: 888-9999

Das GroupCollection von der Match.Groups Eigenschaft zurückgegebene Objekt ist ein nullbasiertes Auflistungsobjekt, das immer über mindestens ein Element verfügt. Wenn das Modul für reguläre Ausdrücke keine Übereinstimmungen in einer bestimmten Eingabezeichenfolge finden kann, wird die Group.Success Eigenschaft des einzelnen Group Objekts in der Auflistung (das Objekt bei Index 0) auf festgelegt false , und die Group Eigenschaft des Value Objekts ist auf festgelegt String.Empty. Wenn das Modul für reguläre Ausdrücke eine Übereinstimmung finden kann, enthält das erste Element des GroupCollection Objekts (das Element bei Index 0), das von der Groups Eigenschaft zurückgegeben wird, eine Zeichenfolge, die mit dem gesamten Muster für reguläre Ausdrücke übereinstimmt. Jedes nachfolgende Element von Index 1 nach oben stellt eine erfasste Gruppe dar, wenn der reguläre Ausdruck Aufnahmegruppen enthält. Weitere Informationen finden Sie im Abschnitt "Grouping Constructs and Regular Expression Objects" im Grouping Constructs-Artikel .

Gilt für: