Esporta (0) Stampa
Espandi tutto
Il presente articolo è stato tradotto automaticamente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale

Metodo Regex.GetGroupNumbers

Restituisce una matrice di numeri di gruppi di acquisizione che corrispondono ai nomi dei gruppi in una matrice.

Spazio dei nomi:  System.Text.RegularExpressions
Assembly:  System (in System.dll)

public int[] GetGroupNumbers()

Valore restituito

Tipo: System.Int32[]
Matrice di tipo Integer di numeri di gruppi.

Sia i gruppi di acquisizione senza nome che denominati è possibile accedere al numero. I gruppi denominati sono numerati da sinistra a destra iniziare con 1. (il gruppo di acquisizione nell'indice 0 (zero) rappresenta la corrispondenza nel suo complesso.) I gruppi denominati quindi sono numerati da sinistra a destra iniziare con un numero che rappresenta una maggiore del numero dei gruppi di acquisizione senza nome.

Facendo riferimento a un gruppo tramite il numero anziché tramite il nome della stringa è possibile accedere più rapidamente.

Nell'esempio seguente viene definita un'espressione regolare, \b((?<word>\w+)\s*)+(?<end>[.?!]), che corrisponde a una frase. L'espressione regolare include tre gruppi di acquisizione: un gruppo senza nome che acquisisce una singola parola con un carattere di spazio che può essere seguita; un gruppo word denominato che acquisisce singole parole nella frase; e un gruppo end denominato che acquisisce la punteggiatura che termina la frase. Nell'esempio viene chiamato il metodo GetGroupNumbers per ottenere i numeri di tutti i gruppi di acquisizione e visualizzare la stringa acquisita. Inoltre, viene utilizzato il metodo GroupNameFromNumber per indicare se un gruppo numerato particolare corrisponde a un gruppo denominato.


using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string pattern = @"\b((?<word>\w+)\s*)+(?<end>[.?!])";
      string input = "This is a sentence. This is a second sentence.";

      Regex rgx = new Regex(pattern);
      int[] groupNumbers = rgx.GetGroupNumbers();
      Match m = rgx.Match(input);
      if (m.Success) {
         Console.WriteLine("Match: {0}", m.Value);
         foreach (var groupNumber in groupNumbers) {
            string name = rgx.GroupNameFromNumber(groupNumber);
            int number;
            Console.WriteLine("   Group {0}{1}: '{2}'", 
                              groupNumber, 
                              ! string.IsNullOrEmpty(name) & 
                              ! Int32.TryParse(name, out number) ?
                                 " (" + name + ")" : String.Empty, 
                              m.Groups[groupNumber].Value);
         }
      } 
   }
}
// The example displays the following output:
//       Match: This is a sentence.
//          Group 0: 'This is a sentence.'
//          Group 1: 'sentence'
//          Group 2 (word): 'sentence'
//          Group 3 (end): '.'


Il modello dell'espressione regolare viene interpretato come illustrato nella tabella seguente.

Modello

Descrizione

\b

Inizia la corrispondenza sul confine di parola.

(?<word>\w+)

Corrisponde a uno o più caratteri alfanumerici e assegnare le stringhe corrispondenti a un gruppo denominato word.

\s*

Trovare la corrispondenza di zero o più spazi vuoti.

((?<word>\w+)\s*)

Assegnare il gruppo acquisito word seguito da tutti gli spazi vuoti acquisiti al gruppo innanzitutto acquisito.

((?<word>\w+)\s*)+

Corrisponde al modello di uno o più caratteri alfanumerici seguiti da tutti gli spazi vuoti uno o più volte.

(?<end>[.?!])

Trova la corrispondenza di un punto, un punto interrogativo o un punto esclamativo. Assegnare il carattere corrispondente al gruppo di acquisizione end.

.NET Framework

Supportato in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supportato in: 4, 3.5 SP1

Libreria di classi portabile

Supportato in: Libreria di classi portabile

.NET per applicazioni Windows Store

Supportato in: Windows 8

.NET per applicazioni Windows Phone

Supportato in: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (ruoli di base del server non supportati), Windows Server 2008 R2 (ruoli di base del server supportati con SP1 o versione successiva, Itanium non supportato)

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.

Aggiunte alla community

AGGIUNGI
Mostra:
© 2014 Microsoft