Sdílet prostřednictvím


Regex.GetGroupNames Metoda

Definice

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.

Platí pro

Viz také