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

Classe Match

 

Data di pubblicazione: ottobre 2016

Rappresenta i risultati di una singola corrispondenza di un'espressione regolare.

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


[SerializableAttribute]
public class Match : Group

NomeDescrizione
System_CAPS_pubpropertyCaptures

Ottiene una raccolta di tutte le acquisizioni rilevate dal gruppo di acquisizione, nell'ordine più interno orientato all'estrema sinistra (o un ordine più interno all'estrema destra prima se l'espressione regolare viene modificata con la RegexOptions.RightToLeft opzione). L'insieme può avere zero o più elementi.(Ereditato da Group.)

System_CAPS_pubpropertySystem_CAPS_staticEmpty

Ottiene il gruppo vuoto. Tutte le corrispondenze non riuscite restituiscono questa corrispondenza vuota.

System_CAPS_pubpropertyGroups

Ottiene una raccolta di gruppi corrispondenti all'espressione regolare.

System_CAPS_pubpropertyIndex

Posizione nella stringa originale in cui viene trovato il primo carattere della sottostringa acquisita.(Ereditato da Capture.)

System_CAPS_pubpropertyLength

Ottiene la lunghezza della sottostringa acquisita.(Ereditato da Capture.)

System_CAPS_pubpropertyName

Restituisce il nome del gruppo di acquisizione rappresentato dall'istanza corrente.(Ereditato da Group.)

System_CAPS_pubpropertySuccess

Ottiene un valore che indica se la corrispondenza ha esito positivo.(Ereditato da Group.)

System_CAPS_pubpropertyValue

Ottiene la sottostringa acquisita dalla stringa di input.(Ereditato da Capture.)

NomeDescrizione
System_CAPS_pubmethodEquals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object.)

System_CAPS_protmethodFinalize()

Consente a un oggetto di provare a liberare risorse ed eseguire altre operazioni di pulizia prima che l'oggetto stesso venga reclamato dalla procedura di Garbage Collection. (Ereditato da Object.)

System_CAPS_pubmethodGetHashCode()

Funge da funzione hash predefinita.(Ereditato da Object.)

System_CAPS_pubmethodGetType()

Ottiene l'oggetto Type dell'istanza corrente.(Ereditato da Object.)

System_CAPS_protmethodMemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.(Ereditato da Object.)

System_CAPS_pubmethodNextMatch()

Restituisce un nuovo oggetto Match con i risultati relativi alla corrispondenza successiva, partendo dalla posizione in cui terminava l'ultima corrispondenza (dal carattere dopo l'ultimo carattere corrispondente).

System_CAPS_pubmethodResult(String)

Restituisce l'espansione del criterio di sostituzione specificato.

System_CAPS_pubmethodSystem_CAPS_staticSynchronized(Match)

Restituisce un'istanza di Match equivalente a quella fornita che può essere condivisa tra più thread.

System_CAPS_pubmethodToString()

Recupera la sottostringa acquisita dalla stringa di input chiamando il Value proprietà.(Ereditato da Capture.)

The T:System.Text.RegularExpressions.Match object is immutable and has no public constructor. An instance of the T:System.Text.RegularExpressions.Match class is returned by the M:System.Text.RegularExpressions.Regex.Match(System.String) method and represents the first pattern match in a string. Subsequent matches are represented by T:System.Text.RegularExpressions.Match objects returned by the M:System.Text.RegularExpressions.Match.NextMatch method. In addition, a T:System.Text.RegularExpressions.MatchCollection object that consists of zero, one, or more T:System.Text.RegularExpressions.Match objects is returned by the M:System.Text.RegularExpressions.Regex.Matches(System.String) method.

If the M:System.Text.RegularExpressions.Regex.Matches(System.String) method fails to match a regular expression pattern in an input string, it returns an empty T:System.Text.RegularExpressions.MatchCollection object. You can then use a foreach construct in C# or a For Each construct in Visual Basic to iterate the collection.

If the M:System.Text.RegularExpressions.Regex.Match(System.String) method fails to match the regular expression pattern, it returns a T:System.Text.RegularExpressions.Match object that is equal to P:System.Text.RegularExpressions.Match.Empty. You can use the P:System.Text.RegularExpressions.Group.Success property to determine whether the match was successful. The following example provides an illustration.

// Search for a pattern that is not found in the input string.
string pattern = "dog";
string input = "The cat saw the other cats playing in the back yard.";
Match match = Regex.Match(input, pattern);
if (match.Success )
   // Report position as a one-based integer.
   Console.WriteLine("'{0}' was found at position {1} in '{2}'.", 
                     match.Value, match.Index + 1, input);
else
   Console.WriteLine("The pattern '{0}' was not found in '{1}'.",
                     pattern, input);

If a pattern match is successful, the P:System.Text.RegularExpressions.Capture.Value property contains the matched substring, the P:System.Text.RegularExpressions.Capture.Index property indicates the zero-based starting position of the matched substring in the input string, and the P:System.Text.RegularExpressions.Capture.Length property indicates the length of matched substring in the input string.

Because a single match can involve multiple capturing groups, T:System.Text.RegularExpressions.Match has a P:System.Text.RegularExpressions.Match.Groups property that returns the T:System.Text.RegularExpressions.GroupCollection. The T:System.Text.RegularExpressions.Match instance itself is equivalent to the first object in the collection, at Match.Groups[0] (Match.Groups(0) in Visual Basic), which represents the entire match. You can access the captured groups in a match in the following ways:

  • You can iterate the members of the T:System.Text.RegularExpressions.GroupCollection object by using a foreach (C#) or For Each (Visual Basic) construct.

  • You can use the P:System.Text.RegularExpressions.GroupCollection.Item(System.Int32) property to retrieve groups by the number of the capturing group. Note that you can determine which numbered groups are present in a regular expression by calling the instance M:System.Text.RegularExpressions.Regex.GetGroupNumbers method.

  • You can use the P:System.Text.RegularExpressions.GroupCollection.Item(System.String) property to retrieve groups by the name of the capturing group. Note that you can determine which named groups are present in a regular expression by calling the instance M:System.Text.RegularExpressions.Regex.GetGroupNames method.

The following examples use the regular expression Console\.Write(Line)?. The regular expression is interpreted as follows:

Console\.Write

Match the string "Console.Write". Note that the "." character is escaped so that it is interpreted as a literal period rather than as a wildcard that matches any character.

(Line)?

Match zero or one occurrence of the string "Line".

Example 1

The following example calls the M:System.Text.RegularExpressions.Regex.Matches(System.String,System.String) method to retrieve all pattern matches in an input string. It then iterates the T:System.Text.RegularExpressions.Match objects in the returned T:System.Text.RegularExpressions.MatchCollection object to display information about each match.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string input = "int[] values = { 1, 2, 3 };\n" +
                     "for (int ctr = values.GetLowerBound(1); ctr <= values.GetUpperBound(1); ctr++)\n" +
                     "{\n" +
                     "   Console.Write(values[ctr]);\n" +
                     "   if (ctr < values.GetUpperBound(1))\n" +
                     "      Console.Write(\", \");\n" +
                     "}\n" +
                     "Console.WriteLine();\n";   

      string pattern = @"Console\.Write(Line)?";
      MatchCollection matches = Regex.Matches(input, pattern);
      foreach (Match match in matches)
         Console.WriteLine("'{0}' found in the source code at position {1}.",  
                           match.Value, match.Index);
   }
}
// The example displays the following output:
//    'Console.Write' found in the source code at position 115.
//    'Console.Write' found in the source code at position 184.
//    'Console.WriteLine' found in the source code at position 211.

Example 2

The following example calls the M:System.Text.RegularExpressions.Regex.Match(System.String,System.String) and M:System.Text.RegularExpressions.Match.NextMatch methods to retrieve one match at a time.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string input = "int[] values = { 1, 2, 3 };\n" +
                     "for (int ctr = values.GetLowerBound(1); ctr <= values.GetUpperBound(1); ctr++)\n" +
                     "{\n" +
                     "   Console.Write(values[ctr]);\n" +
                     "   if (ctr < values.GetUpperBound(1))\n" +
                     "      Console.Write(\", \");\n" +
                     "}\n" +
                     "Console.WriteLine();\n";   
      string pattern = @"Console\.Write(Line)?";
      Match match = Regex.Match(input, pattern);
      while (match.Success)
      {
         Console.WriteLine("'{0}' found in the source code at position {1}.",  
                           match.Value, match.Index);
         match = match.NextMatch();
      }
   }
}
// The example displays the following output:
//    'Console.Write' found in the source code at position 115.
//    'Console.Write' found in the source code at position 184.
//    'Console.WriteLine' found in the source code at position 211.

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

I membri statici pubblici ( Condiviso in Visual Basic) di questo tipo è thread safe. Non tutti i membri di istanza sono garantiti come thread safe.

Torna all'inizio
Mostra: