Regex.GetGroupNames Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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.