Regex.GetGroupNames Methode

Definition

Gibt ein Array der Namen von Erfassungsgruppen für den regulären Ausdruck zurück.

public:
 cli::array <System::String ^> ^ GetGroupNames();
public string[] GetGroupNames ();
member this.GetGroupNames : unit -> string[]
Public Function GetGroupNames () As String()

Gibt zurück

String[]

Ein Zeichenfolgenarray von Gruppennamen.

Beispiele

Im folgenden Beispiel wird eine allgemeine ShowMatches Methode definiert, die die Namen regulärer Ausdrucksgruppen und deren übereinstimmenden Text anzeigt.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string pattern = @"\b(?<FirstWord>\w+)\s?((\w+)\s)*(?<LastWord>\w+)?(?<Punctuation>\p{Po})";
      string input = "The cow jumped over the moon.";
      Regex rgx = new Regex(pattern);
      Match match = rgx.Match(input);
      if (match.Success)
         ShowMatches(rgx, match);
   }

   private static void ShowMatches(Regex r, Match m)
   {
      string[] names = r.GetGroupNames();
      Console.WriteLine("Named Groups:");
      foreach (var name in names) {
         Group grp = m.Groups[name];
         Console.WriteLine("   {0}: '{1}'", name, grp.Value);
      }
   }
}
// The example displays the following output:
//       Named Groups:
//          0: 'The cow jumped over the moon.'
//          1: 'the '
//          2: 'the'
//          FirstWord: 'The'
//          LastWord: 'moon'
//          Punctuation: '.'
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim pattern As String = "\b(?<FirstWord>\w+)\s?((\w+)\s)*(?<LastWord>\w+)?(?<Punctuation>\p{Po})"
      Dim input As String = "The cow jumped over the moon."
      Dim rgx As New Regex(pattern)
      Dim match As Match = rgx.Match(input)
      If match.Success Then ShowMatches(rgx, match)
   End Sub
   
   Private Sub ShowMatches(r As Regex, m As Match)
      Dim names() As String = r.GetGroupNames()
      Console.WriteLine("Named Groups:")
      For Each name In names
         Dim grp As Group = m.Groups.Item(name)
         Console.WriteLine("   {0}: '{1}'", name, grp.Value)
      Next
   End Sub
End Module
' The example displays the following output:
'       Named Groups:
'          0: 'The cow jumped over the moon.'
'          1: 'the '
'          2: 'the'
'          FirstWord: 'The'
'          LastWord: 'moon'
'          Punctuation: '.'

In diesem Fall soll das Muster für reguläre Ausdrücke \b(?<FirstWord>\w+)\s?((\w+)\s)*(?<LastWord>\w+)?(?<Punctuation>\p{Po}) einen einfachen Satz analysieren und sein erstes Wort, das letzte Wort und das Endzeichen der Interpunktion identifizieren. In der folgenden Tabelle wird gezeigt, wie das Muster für reguläre Ausdrücke interpretiert wird:

Muster Beschreibung
\b Der Vergleich beginnt an einer Wortgrenze.
(?<FirstWord>\w+) Übereinstimmung mit mindestens einem Wortzeichen. Dies ist die FirstWord benannte Gruppe.
\s? Sucht nach einer Übereinstimmung mit keinem oder einem Leerzeichen.
(\w+) Übereinstimmung mit mindestens einem Wortzeichen. Dies ist die zweite Erfassungsgruppe.
\s Entsprechung für ein Leerraumzeichen finden.
(\w+)\s)* Stimmen Sie null oder mehr Vorkommen eines oder mehrerer Wortzeichen ab, gefolgt von einem Leerzeichen. Dies ist die erste Erfassungsgruppe.
(?<LastWord> \w+)? Entspricht null oder einem Vorkommen eines oder mehrerer Wortzeichen. Dies ist die LastWord benannte Gruppe.
(?<Punctuation> \p{Po}) Übereinstimmung mit einem Zeichen, dessen Unicode-Kategorie Interpunktion, Andere ist. Dies ist die Punctuation benannte Gruppe.

Hinweise

Die Auflistung von Gruppennamen enthält den Satz von Zeichenfolgen, die zum Benennen von Gruppen im Ausdruck verwendet werden. Auch wenn die Erfassung von Gruppen nicht explizit benannt wird, werden automatisch numerische Namen ("0", "1", "2", "3" usw.) zugewiesen. Die benannte Gruppe "0" stellt den gesamten Text dar, der vom regulären Ausdrucksmuster abgeglichen wird. Nummerierte Gruppen setzen explizit benannte Gruppen in der Auflistung voraus, und benannte Gruppen werden in der Reihenfolge angezeigt, in der sie im regulären Ausdrucksmuster definiert sind.

Sie können die Length Eigenschaft für das Array verwenden, das von dieser Methode zurückgegeben wird, um die Anzahl der Gruppen in einem regulären Ausdruck zu bestimmen.

Gilt für

Siehe auch