Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo Regex.GetGroupNumbers ()

 

Data di pubblicazione: ottobre 2016

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

Type: System.Int32[]

Matrice di interi di numeri di gruppi.

I gruppi di acquisizione denominati e non sono accessibile tramite un numero. I gruppi non denominati sono numerati da sinistra a destra iniziando da 1. (Il gruppo di acquisizione in corrispondenza dell'indice 0 (zero) rappresenta la corrispondenza nel suo complesso). Gruppi denominati sono quindi numerati da sinistra a destra iniziando da un numero maggiore di uno rispetto al numero di non denominati gruppi di acquisizione.

Riferimento a un gruppo dal relativo numero anziché in base al nome di stringa, è possibile fornire un accesso più rapido.

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 per l'acquisizione di una singola parola insieme a un carattere di spazio che può seguire. un gruppo denominato word che acquisisce singole parole nella frase, e un gruppo denominato end che acquisisce la punteggiatura che termina con la frase. Nell'esempio viene chiamato il GetGroupNumbers metodo per ottenere i numeri di acquisizione tutti gruppi e quindi Visualizza la stringa acquisita. Inoltre, il GroupNameFromNumber metodo viene utilizzato per indicare se un particolare gruppo numerato 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): '.'

The regular expression pattern is interpreted as shown in the following table.

Pattern

Description

\b

Begin the match at a word boundary.

(?<word>\w+)

Match one or more word characters and assign the matched strings to a group named word.

\s*

Match zero or more white-space characters.

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

Assign the word captured group followed by any captured white-space characters to the first captured group.

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

Match the pattern of one or more word characters followed by any white-space characters one or more times.

(?<end>[.?!])

Match a period, question mark, or exclamation point. Assign the matched character to the end capturing group.

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 1.1
Libreria di classi portabile
Supportato in: piattaforme .NET portabili
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.0
Windows Phone
Disponibile da 8.1
Torna all'inizio
Mostra: