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 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.