Regex.GetGroupNames Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Zwraca tablicę przechwytywania nazw grup dla wyrażenia regularnego.
public:
cli::array <System::String ^> ^ GetGroupNames();
public string[] GetGroupNames ();
member this.GetGroupNames : unit -> string[]
Public Function GetGroupNames () As String()
Zwraca
- String[]
Tablica ciągów nazw grup.
Przykłady
W poniższym przykładzie zdefiniowano metodę ogólnego przeznaczenia ShowMatches
, która wyświetla nazwy grup wyrażeń regularnych i ich dopasowany tekst.
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: '.'
W tym przypadku wzorzec \b(?<FirstWord>\w+)\s?((\w+)\s)*(?<LastWord>\w+)?(?<Punctuation>\p{Po})
wyrażenia regularnego jest przeznaczony do analizowania prostego zdania i identyfikowania pierwszego słowa, ostatniego słowa i końcowego znaku interpunkcyjnego. W poniższej tabeli przedstawiono sposób interpretowania wzorca wyrażenia regularnego:
Wzorce | Opis |
---|---|
\b |
Rozpoczyna dopasowanie na granicy wyrazu. |
(?<FirstWord>\w+) |
Dopasowuje co najmniej jeden znak słowa. Jest to nazwana FirstWord grupa. |
\s? | Dopasowanie do zera lub jednego znaku odstępu. |
(\w+) | Dopasowuje co najmniej jeden znak słowa. Jest to druga grupa przechwytywania. |
\s | Dopasowuje znak odstępu. |
((\w+)\s)* | Dopasuj zero lub więcej wystąpień co najmniej jednego znaku słowa, po którym następuje biały znak. Jest to pierwsza grupa przechwytywania. |
(?<LastWord> \w+)? | Dopasuj zero lub jedno wystąpienie co najmniej jednego znaku słowa. Jest to nazwana LastWord grupa. |
(?<Punctuation> \p{Po}) | Dopasuj znak, którego kategoria Unicode to Interpunkcja, Inne. Jest to nazwana Punctuation grupa. |
Uwagi
Kolekcja nazw grup zawiera zestaw ciągów używanych do nazywania grup przechwytywania w wyrażeniu. Nawet jeśli przechwytywanie grup nie jest jawnie nazwane, są automatycznie przypisywane nazwy liczbowe ("0", "1", "2", "3" itd.). Nazwana grupa "0" reprezentuje cały tekst dopasowany przez wzorzec wyrażenia regularnego. Grupy numerowane poprzedzają jawnie nazwane grupy w kolekcji, a nazwane grupy są wyświetlane w kolejności, w której są zdefiniowane we wzorcu wyrażenia regularnego.
Można użyć Length właściwości w tablicy zwracanej przez tę metodę, aby określić liczbę grup w wyrażeniu regularnym.