Regex.GetGroupNames Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vrátí pole pro zachytávání názvů skupin pro regulární výraz.
public:
cli::array <System::String ^> ^ GetGroupNames();
public string[] GetGroupNames ();
member this.GetGroupNames : unit -> string[]
Public Function GetGroupNames () As String()
Návraty
- String[]
Pole řetězců názvů skupin.
Příklady
Následující příklad definuje metodu pro obecné účely ShowMatches
, která zobrazuje názvy skupin regulárních výrazů a jejich odpovídající text.
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: '.'
V tomto případě je vzor \b(?<FirstWord>\w+)\s?((\w+)\s)*(?<LastWord>\w+)?(?<Punctuation>\p{Po})
regulárního výrazu určen k analýze jednoduché věty a k identifikaci prvního slova, posledního slova a koncové interpunkční znaménka. Následující tabulka ukazuje, jak se interpretuje vzor regulárního výrazu:
Vzor | Description |
---|---|
\b |
Začne porovnání na hranici slova. |
(?<FirstWord>\w+) |
Porovná jeden nebo více znaků slova. Toto je pojmenovaná FirstWord skupina. |
\s? | Porovná žádný nebo jeden prázdný znak. |
(\w+) | Porovná jeden nebo více znaků slova. Toto je druhá zachytávající skupina. |
\s | Porovná prázdný znak. |
((\w+)\s)* | Porovná nula nebo více výskytů jednoho nebo více znaků slova následovaných prázdným znakem. Toto je první zachytávající skupina. |
(?<LastWord> \w+)? | Porovná žádný nebo jeden výskyt jednoho nebo více znaků slova. Toto je pojmenovaná LastWord skupina. |
(?<Punctuation> \p{Po}) | Porovná znak, jehož kategorie Unicode je interpunkce, Jiné. Toto je pojmenovaná Punctuation skupina. |
Poznámky
Kolekce názvů skupin obsahuje sadu řetězců, které slouží k pojmenování zachytávání skupin ve výrazu. I když zachytávání skupin není explicitně pojmenované, automaticky se jim přiřadí číselné názvy ("0", "1", "2", "3" atd.). Pojmenovaná skupina "0" představuje veškerý text, který odpovídá vzoru regulárního výrazu. Číslovaným skupinám předchází explicitně pojmenované skupiny v kolekci a pojmenované skupiny se zobrazí v pořadí, ve kterém jsou definovány v vzoru regulárního výrazu.
Pomocí vlastnosti pole vrácené touto metodou můžete Length určit počet skupin v regulárním výrazu.