Match Match Match Match Class

Definicja

Reprezentuje wyniki z pojedynczego wyrażenia regularnego dopasowanie.Represents the results from a single regular expression match.

public ref class Match : System::Text::RegularExpressions::Group
[System.Serializable]
public class Match : System.Text.RegularExpressions.Group
type Match = class
    inherit Group
Public Class Match
Inherits Group
Dziedziczenie
Atrybuty

Przykłady

W poniższych przykładach użyto wyrażenia regularnego Console\.Write(Line)?.The following examples use the regular expression Console\.Write(Line)?. Wyrażenia regularnego jest interpretowany w następujący sposób:The regular expression is interpreted as follows:

Konsola\. ZapisConsole\.Write Pasuje do ciągu "Console.Write —".Match the string "Console.Write". Należy pamiętać, że "." znaków została zmieniona tak, aby był interpretowany jako literał okres, a nie jako symbolu wieloznacznego, który dopasowuje dowolny znak.Note that the "." character is escaped so that it is interpreted as a literal period rather than as a wildcard that matches any character.
(Wiersz)?(Line)? Dopasowuje zero lub jeden wystąpienie ciągu "Wiersz".Match zero or one occurrence of the string "Line".

Przykład 1Example 1

Poniższy przykład wywołuje Regex.Matches(String, String) metodę, aby pobrać wszystkie dopasowania do wzorca w ciągu wejściowym.The following example calls the Regex.Matches(String, String) method to retrieve all pattern matches in an input string. Następnie iterację Match obiektów w zwróconym elemencie MatchCollection obiektu do wyświetlenia informacji na temat każdego dopasowania.It then iterates the Match objects in the returned 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.
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim input As String = "Dim values() As Integer = { 1, 2, 3 }" & vbCrLf & _
                            "For ctr As Integer = values.GetLowerBound(1) To values.GetUpperBound(1)" & vbCrLf & _
                            "   Console.Write(values(ctr))" & vbCrLf & _
                            "   If ctr < values.GetUpperBound(1) Then Console.Write("", "")" & vbCrLf & _
                            "Next" & vbCrLf & _
                            "Console.WriteLine()"   
      Dim pattern As String = "Console\.Write(Line)?"
      Dim matches As MatchCollection = Regex.Matches(input, pattern)
      For Each match As Match In matches
         Console.WriteLine("'{0}' found in the source code at position {1}.", _ 
                           match.Value, match.Index)       
      Next                            
   End Sub
End Module
' 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.

Przykład 2Example 2

Poniższy przykład wywołuje Match(String, String) i NextMatch metody pobierania jedno dopasowanie w danym momencie.The following example calls the Match(String, String) and 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.
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim input As String = "Dim values() As Integer = { 1, 2, 3 }" & vbCrLf & _
                            "For ctr As Integer = values.GetLowerBound(1) To values.GetUpperBound(1)" & vbCrLf & _
                            "   Console.Write(values(ctr))" & vbCrLf & _
                            "   If ctr < values.GetUpperBound(1) Then Console.Write("", "")" & vbCrLf & _
                            "Next" & vbCrLf & _
                            "Console.WriteLine()"   
      Dim pattern As String = "Console\.Write(Line)?"
      Dim match As Match = Regex.Match(input, pattern)
      Do While match.Success
         Console.WriteLine("'{0}' found in the source code at position {1}.", _ 
                           match.Value, match.Index)
         match = match.NextMatch()                  
      Loop                            
   End Sub
End Module
' 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.

Uwagi

Match Obiektu jest niemodyfikowalna i nie ma publicznego konstruktora.The Match object is immutable and has no public constructor. Wystąpienie Match klasy jest zwracany przez Regex.Match metody i reprezentuje definicję wzorca pierwszego dopasowania w ciągu.An instance of the Match class is returned by the Regex.Match method and represents the first pattern match in a string. Kolejne dopasowania są reprezentowane przez Match obiektów zwróconych przez Match.NextMatch metody.Subsequent matches are represented by Match objects returned by the Match.NextMatch method. Ponadto MatchCollection obiekt, który składa się z zero, co najmniej jeden Match obiektów jest zwracany przez Regex.Matches metody.In addition, a MatchCollection object that consists of zero, one, or more Match objects is returned by the Regex.Matches method.

Jeśli Regex.Matches metoda nie powiedzie się dopasować wzorzec wyrażenia regularnego w ciągu wejściowym, zwracana jest pusta MatchCollection obiektu.If the Regex.Matches method fails to match a regular expression pattern in an input string, it returns an empty MatchCollection object. Następnie można użyć foreach konstruowania w języku C# lub For Each konstruowania w języku Visual Basic do iteracji kolekcji.You can then use a foreach construct in C# or a For Each construct in Visual Basic to iterate the collection.

Jeśli Regex.Match metoda nie pasuje do wzorca wyrażenia regularnego, zwraca Match obiektu, który jest równy Match.Empty.If the Regex.Match method fails to match the regular expression pattern, it returns a Match object that is equal to Match.Empty. Możesz użyć Success właściwości w celu określenia, czy dopasowanie zakończyło się pomyślnie.You can use the Success property to determine whether the match was successful. Poniższy przykład stanowi ilustrację.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);
' Search for a pattern that is not found in the input string.
Dim pattern As String = "dog"
Dim input As String = "The cat saw the other cats playing in the back yard."
Dim match As Match = Regex.Match(input, pattern)
If match.Success Then
   ' 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)
End If

Jeśli operacja się powiedzie, dopasowania do wzorca Value właściwość zawiera dopasowanego podciągu Index właściwość wskazuje liczony od zera pozycja początkowa dopasowanego podciągu w ciągu wejściowym i Length właściwość wskazuje Długość dopasowanego podciągu w ciągu wejściowym.If a pattern match is successful, the Value property contains the matched substring, the Index property indicates the zero-based starting position of the matched substring in the input string, and the Length property indicates the length of matched substring in the input string.

Ponieważ pojedyncze dopasowanie może obejmować wiele grup przechwytywania, Match ma Groups właściwość, która zwraca GroupCollection.Because a single match can involve multiple capturing groups, Match has a Groups property that returns the GroupCollection. Match Samego wystąpienia jest odpowiednikiem pierwszy obiekt w kolekcji, w Match.Groups[0] (Match.Groups(0) w języku Visual Basic), która reprezentuje całego dopasowania.The 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. Aby uzyskać dostęp przechwyconych grup w dopasowania w następujący sposób:You can access the captured groups in a match in the following ways:

  • Można wykonać iterację członkowie GroupCollection obiektu za pomocą foreach (C#) lub For Each konstrukcji (Visual Basic).You can iterate the members of the GroupCollection object by using a foreach (C#) or For Each (Visual Basic) construct.

  • Możesz użyć GroupCollection.Item[Int32] właściwości do pobrania grup z numerem grupy przechwytywania.You can use the GroupCollection.Item[Int32] property to retrieve groups by the number of the capturing group. Należy pamiętać, że można określić numerowanej grupy, które są obecne w wyrażeniu regularnym przez wywołanie metody wystąpienia Regex.GetGroupNumbers metody.Note that you can determine which numbered groups are present in a regular expression by calling the instance Regex.GetGroupNumbers method.

  • Możesz użyć GroupCollection.Item[String] właściwość służąca do pobierania grup według nazwy grupy przechwytywania.You can use the GroupCollection.Item[String] property to retrieve groups by the name of the capturing group. Należy pamiętać, że można określić nazwanej grupy, które są obecne w wyrażeniu regularnym przez wywołanie metody wystąpienia Regex.GetGroupNames() metody.Note that you can determine which named groups are present in a regular expression by calling the instance Regex.GetGroupNames() method.

Właściwości

Captures Captures Captures Captures

Pobiera kolekcję wszystkie elementy, które są dopasowane przez grupę przechwytywania, w kolejności najbardziej wewnętrzną funkcją skrajnie po lewej stronie — pierwszy (lub najbardziej wewnętrzną funkcją po prawej stronie — pierwszy na zamówienie, jeśli wyrażenie regularne jest modyfikowana za pomocą RightToLeft opcji).Gets a collection of all the captures matched by the capturing group, in innermost-leftmost-first order (or innermost-rightmost-first order if the regular expression is modified with the RightToLeft option). Kolekcja może mieć zero lub więcej elementów.The collection may have zero or more items.

(Inherited from Group)
Empty Empty Empty Empty

Pobiera pustej grupy.Gets the empty group. Wszystkie nieudane dopasowania zwracać ten pusty dopasowania.All failed matches return this empty match.

Groups Groups Groups Groups

Pobiera kolekcję grup dopasowane przez wyrażenia regularne.Gets a collection of groups matched by the regular expression.

Index Index Index Index

Pozycja oryginalny ciąg, w którym znajduje się pierwszy znak podciąg przechwycony.The position in the original string where the first character of the captured substring is found.

(Inherited from Capture)
Length Length Length Length

Pobiera długość podciąg przechwycony.Gets the length of the captured substring.

(Inherited from Capture)
Name Name Name Name

Zwraca nazwę grupy przechwytywania, reprezentowane przez bieżące wystąpienie.Returns the name of the capturing group represented by the current instance.

(Inherited from Group)
Success Success Success Success

Pobiera wartość wskazującą, czy dopasowanie zakończyło się powodzeniem.Gets a value indicating whether the match is successful.

(Inherited from Group)
Value Value Value Value

Pobiera podciąg przechwycony z ciągu wejściowego.Gets the captured substring from the input string.

(Inherited from Capture)

Metody

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Określa, czy określony obiekt jest równy bieżącemu obiektowi.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Służy jako domyślnej funkcji skrótu.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Pobiera Type bieżącego wystąpienia.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Tworzy płytką kopię bieżącego Object.Creates a shallow copy of the current Object.

(Inherited from Object)
NextMatch() NextMatch() NextMatch() NextMatch()

Zwraca nowy Match obiekt z wynikami dla następnego dopasowania, zaczynając od pozycji jaką ostatniego dopasowania zakończył się (na znak po ostatni dopasowany znak).Returns a new Match object with the results for the next match, starting at the position at which the last match ended (at the character after the last matched character).

Result(String) Result(String) Result(String) Result(String)

Zwraca rozszerzenie wzorzec zamieniania określony.Returns the expansion of the specified replacement pattern.

Synchronized(Match) Synchronized(Match) Synchronized(Match) Synchronized(Match)

Zwraca Match odpowiednikiem dostarczonego wystąpienia, które jest odpowiednie do udostępniania między wieloma wątkami.Returns a Match instance equivalent to the one supplied that is suitable to share between multiple threads.

ToString() ToString() ToString() ToString()

Pobiera podciąg przechwycony z ciągu wejściowego, przez wywołanie metody Value właściwości.Retrieves the captured substring from the input string by calling the Value property.

(Inherited from Capture)

Dotyczy

Zobacz też