Compartilhar via


Regex.GetGroupNames Método

Definição

Retorna uma matriz de nomes de grupo de captura para a expressão regular.

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

Retornos

String[]

Uma matriz de cadeia de caracteres de nomes de grupo.

Exemplos

O exemplo a seguir define um método de uso ShowMatches geral que exibe os nomes de grupos de expressões regulares e seu texto correspondente.

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

Nesse caso, o padrão \b(?<FirstWord>\w+)\s?((\w+)\s)*(?<LastWord>\w+)?(?<Punctuation>\p{Po}) de expressão regular destina-se a analisar uma frase simples e identificar sua primeira palavra, última palavra e marca de pontuação final. A tabela a seguir mostra como o padrão de expressão regular é interpretado:

Padrão Descrição
\b Começar a correspondência em um limite de palavra.
(?<FirstWord>\w+) Fazer a correspondência a um ou mais caracteres de palavra. Esse é o FirstWord grupo nomeado.
\s? Corresponder a zero ou a um caractere de espaço em branco.
(\w+) Fazer a correspondência a um ou mais caracteres de palavra. Este é o segundo grupo de captura.
\s Corresponde a um caractere de espaço em branco.
((\w+)\s)* Corresponder a zero ou mais ocorrências de um ou mais caracteres de palavra seguidos por um espaço em branco. Este é o primeiro grupo de captura.
(?<LastWord> \w+)? Corresponder a zero ou uma ocorrência de um ou mais caracteres de palavra. Esse é o LastWord grupo nomeado.
(?<Punctuation> \p{Po}) Corresponder a um caractere cuja categoria Unicode é Pontuação, Outros. Esse é o Punctuation grupo nomeado.

Comentários

A coleção de nomes de grupo contém o conjunto de cadeias de caracteres usadas para nomear grupos de captura na expressão. Mesmo que os grupos de captura não sejam nomeados explicitamente, eles receberão automaticamente nomes numéricos ("0", "1", "2", "3" e assim por diante). O grupo nomeado "0" representa todo o texto correspondente ao padrão de expressão regular. Os grupos numerados precedem grupos nomeados explicitamente na coleção e os grupos nomeados aparecem na ordem em que são definidos no padrão de expressão regular.

Você pode usar a Length propriedade na matriz retornada por esse método para determinar o número de grupos em uma expressão regular.

Aplica-se a

Confira também