Regex.GetGroupNames Método

Definición

Devuelve una matriz de nombres de grupo de captura para la expresión regular.Returns an array of capturing group names for the regular expression.

public:
 cli::array <System::String ^> ^ GetGroupNames();
public string[] GetGroupNames ();
member this.GetGroupNames : unit -> string[]
Public Function GetGroupNames () As String()

Devoluciones

String[]

Matriz de cadenas de nombres de grupo.A string array of group names.

Ejemplos

En el ejemplo siguiente se define un método de ShowMatches de uso general que muestra los nombres de los grupos de expresiones regulares y su texto coincidente.The following example defines a general-purpose ShowMatches method that displays the names of regular expression groups and their matched 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: '.'

En este caso, el patrón de expresión regular \b(?<FirstWord>\w+)\s?((\w+)\s)*(?<LastWord>\w+)?(?<Punctuation>\p{Po}) está diseñado para analizar una frase simple e identificar su primera palabra, la última palabra y el signo de puntuación final.In this case, the regular expression pattern \b(?<FirstWord>\w+)\s?((\w+)\s)*(?<LastWord>\w+)?(?<Punctuation>\p{Po}) is intended to parse a simple sentence, and to identify its first word, last word, and ending punctuation mark. En la tabla siguiente se muestra cómo se interpreta el patrón de expresión regular:The following table shows how the regular expression pattern is interpreted:

PatrónPattern DescripciónDescription
\b Iniciar la búsqueda de coincidencias en un límite de palabras.Begin the match at a word boundary.
(?<FirstWord>\w+) Buscar coincidencias con uno o más caracteres alfabéticos.Match one or more word characters. Este es el FirstWord grupo con nombre.This is the FirstWord named group.
\s?\s? Busca una coincidencia con cero o un carácter de espacio en blanco.Match zero or one white-space characters.
(\w+)(\w+) Buscar coincidencias con uno o más caracteres alfabéticos.Match one or more word characters. Este es el segundo grupo de captura.This is the second capturing group.
\s\s Coincide con un carácter de espacio en blanco.Match a white-space character.
((\w+)\s)*((\w+)\s)* Coincide con cero o más apariciones de uno o más caracteres de palabra seguidos de un espacio en blanco.Match zero or more occurrences of one or more word characters followed by a white space. Este es el primer grupo de captura.This is the first capturing group.
(?<LastWord > \w +)?(?<LastWord>\w+)? Coincide con cero o una aparición de uno o más caracteres de palabra.Match zero or one occurrence of one or more word characters. Este es el LastWord grupo con nombre.This is the LastWord named group.
(?<puntuación > \p{Po})(?<Punctuation>\p{Po}) Coincide con un carácter cuya categoría Unicode sea de puntuación, otra.Match a character whose Unicode category is Punctuation, Other. Este es el Punctuation grupo con nombre.This is the Punctuation named group.

Comentarios

La colección de nombres de grupo contiene el conjunto de cadenas que se utiliza para asignar nombres a los grupos de captura en la expresión.The collection of group names contains the set of strings used to name capturing groups in the expression. Aunque los grupos de captura no se denominen explícitamente, se les asignan nombres numéricos ("0", "1", "2", "3", etc.).Even if capturing groups are not explicitly named, they are automatically assigned numerical names ("0", "1", "2", "3", and so on). El grupo con nombre "0" representa todo el texto coincidente con el patrón de expresión regular.The "0" named group represents all text matched by the regular expression pattern. Los grupos numerados preceden a los grupos con nombre explícito de la colección y los grupos con nombre aparecen en el orden en el que se definen en el patrón de expresión regular.Numbered groups precede explicitly named groups in the collection, and named groups appear in the order in which they are defined in the regular expression pattern.

Puede usar la propiedad Length en la matriz devuelta por este método para determinar el número de grupos en una expresión regular.You can use the Length property on the array returned by this method to determine the number of groups in a regular expression.

Se aplica a

Consulte también: