Regex.GetGroupNames Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Gibt ein Array von Gruppennamen 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
Ein Zeichenfolgenarray mit 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 \b(?<FirstWord>\w+)\s?((\w+)\s)*(?<LastWord>\w+)?(?<Punctuation>\p{Po}) für reguläre Ausdrücke einen einfachen Satz analysieren und das erste Wort, das letzte Wort und das endende Satzzeichen identifizieren. Die folgende Tabelle zeigt, wie das Muster für reguläre Ausdrücke interpretiert wird:
| Schema | 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)* | Entspricht null oder mehr Vorkommen eines oder mehrerer Wortzeichen 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. |
| (?<Satzzeichen>\p{Po}) | Zuordnen eines Zeichens, dessen Unicode-Kategorie interpunktion, Other. 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. Selbst wenn das Erfassen von Gruppen nicht explizit benannt wird, werden ihnen automatisch numerische Namen zugewiesen ("0", "1", "2", "3" usw.). Die benannte Gruppe "0" stellt den gesamten Text dar, der mit dem Muster für reguläre Ausdrücke übereinstimmt. Nummerierte Gruppen stellen explizit benannte Gruppen in der Auflistung voraus, und benannte Gruppen werden in der Reihenfolge angezeigt, in der sie im Muster für reguläre Ausdrücke 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.