Regex.GetGroupNames Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Restituisce una matrice di nomi di gruppi di acquisizione per l'espressione regolare.
public:
cli::array <System::String ^> ^ GetGroupNames();
public string[] GetGroupNames ();
member this.GetGroupNames : unit -> string[]
Public Function GetGroupNames () As String()
Restituisce
- String[]
Matrice di stringhe di nomi di gruppi.
Esempio
Nell'esempio seguente viene definito un metodo per utilizzo ShowMatches
generico che visualizza i nomi dei gruppi di espressioni regolari e il relativo testo corrispondente.
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: '.'
In questo caso, il criterio \b(?<FirstWord>\w+)\s?((\w+)\s)*(?<LastWord>\w+)?(?<Punctuation>\p{Po})
di espressione regolare è destinato all'analisi di una frase semplice e all'identificazione della prima parola, dell'ultima parola e del segno di punteggiatura finale. La tabella seguente illustra come viene interpretato il modello di espressione regolare:
Modello | Descrizione |
---|---|
\b |
Inizia la corrispondenza sul confine di parola. |
(?<FirstWord>\w+) |
Trova la corrispondenza di uno o più caratteri alfanumerici. Si tratta del FirstWord gruppo denominato. |
\s? | Trova la corrispondenza di uno o nessuno spazio vuoto. |
(\w+) | Trova la corrispondenza di uno o più caratteri alfanumerici. Equivale al secondo gruppo di acquisizione. |
\s | Trova la corrispondenza con uno spazio vuoto. |
((\w+)\s)* | Trova la corrispondenza con zero o più occorrenze di uno o più caratteri di parola seguiti da uno spazio vuoto. Equivale al primo gruppo di acquisizione. |
(?<LastWord> \w+)? | Trova la corrispondenza con zero o una occorrenza di uno o più caratteri di parola. Si tratta del LastWord gruppo denominato. |
(?<Punctuation> \p{Po}) | Trova la corrispondenza con un carattere la cui categoria Unicode è Punctuation, Other. Si tratta del Punctuation gruppo denominato. |
Commenti
La raccolta di nomi di gruppo contiene il set di stringhe utilizzate per assegnare un nome ai gruppi di acquisizione nell'espressione. Anche se i gruppi di acquisizione non sono denominati in modo esplicito, vengono assegnati automaticamente nomi numerici ("0", "1", "2", "3" e così via). Il gruppo denominato "0" rappresenta tutto il testo corrispondente al criterio di espressione regolare. I gruppi numerati precedono gruppi denominati in modo esplicito nella raccolta e i gruppi denominati vengono visualizzati nell'ordine in cui sono definiti nel criterio di espressione regolare.
È possibile utilizzare la Length proprietà nella matrice restituita da questo metodo per determinare il numero di gruppi in un'espressione regolare.