Match Match Match Match Class

Определение

Представляет результаты из отдельного совпадения регулярного выражения.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
Наследование
Атрибуты

Примеры

В следующих примерах используется регулярное выражение Console\.Write(Line)?.The following examples use the regular expression Console\.Write(Line)?. Регулярное выражение интерпретируется следующим образом:The regular expression is interpreted as follows:

Консоль\. ЗаписиConsole\.Write Совпадение со строкой "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)? Совпадение с нулевым или единичным вхождением строки "Line".Match zero or one occurrence of the string "Line".

Пример 1Example 1

В следующем примере вызывается Regex.Matches(String, String) метод для извлечения всех соответствий шаблону во входной строке.The following example calls the Regex.Matches(String, String) method to retrieve all pattern matches in an input string. Затем запрос проходит Match объектов в возвращаемом MatchCollection объекта для отображения сведений о каждом.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.

Пример 2Example 2

В следующем примере вызывается Match(String, String) и NextMatch методы для получения одного совпадения за раз.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.

Комментарии

Match Является постоянным и не имеет открытого конструктора.The Match object is immutable and has no public constructor. Экземпляр Match класс возвращается посредством Regex.Match методом и представляет первый шаблон сопоставления в строку.An instance of the Match class is returned by the Regex.Match method and represents the first pattern match in a string. Последующие соответствия, представляются Match объектов, возвращенных Match.NextMatch метод.Subsequent matches are represented by Match objects returned by the Match.NextMatch method. Кроме того MatchCollection , состоящий из нуля, одного или нескольких Match возвращаемые объекты Regex.Matches метод.In addition, a MatchCollection object that consists of zero, one, or more Match objects is returned by the Regex.Matches method.

Если Regex.Matches метод не соответствует шаблону регулярного выражения во входной строке, то возвращается пустой MatchCollection объекта.If the Regex.Matches method fails to match a regular expression pattern in an input string, it returns an empty MatchCollection object. Затем можно использовать foreach конструкции в C# или For Each конструкции в Visual Basic для прохода по коллекции.You can then use a foreach construct in C# or a For Each construct in Visual Basic to iterate the collection.

Если Regex.Match метод не соответствует шаблону регулярного выражения, он возвращает Match объект, который равен 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. Можно использовать Success свойства, чтобы определить, успешно ли совпадение.You can use the 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);
' 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

При успешном выполнении, соответствия шаблону Value свойство содержит совпадающую подстроку, Index свойство указывает отсчитываемый от нуля позицию сопоставленной подстроки во входной строке и Length указывает свойство Длина сопоставленной подстроки во входной строке.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.

Поскольку совпадение может включать в себя несколько групп захвата, Match имеет Groups свойство, которое возвращает GroupCollection.Because a single match can involve multiple capturing groups, Match has a Groups property that returns the GroupCollection. Match Сам экземпляр эквивалентен первый объект в коллекции, в Match.Groups[0] (Match.Groups(0) в Visual Basic), который представляет все сопоставление.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. Захватываемые группы в соответствие можно открыть следующими способами:You can access the captured groups in a match in the following ways:

  • Можно выполнять перебор членов GroupCollection объекта с помощью foreach (C#) или For Each конструкции (Visual Basic).You can iterate the members of the GroupCollection object by using a foreach (C#) or For Each (Visual Basic) construct.

  • Можно использовать GroupCollection.Item[Int32] свойство для извлечения группы по номеру группы записи.You can use the GroupCollection.Item[Int32] property to retrieve groups by the number of the capturing group. Обратите внимание, что можно определить, какие нумерованные группы в регулярном выражении путем вызова экземпляра Regex.GetGroupNumbers метод.Note that you can determine which numbered groups are present in a regular expression by calling the instance Regex.GetGroupNumbers method.

  • Можно использовать GroupCollection.Item[String] свойство для извлечения группы по имени захватываемой группы.You can use the GroupCollection.Item[String] property to retrieve groups by the name of the capturing group. Обратите внимание, что можно определить, какие именованные группы присутствуют в регулярном выражении, путем вызова экземпляра Regex.GetGroupNames() метод.Note that you can determine which named groups are present in a regular expression by calling the instance Regex.GetGroupNames() method.

Свойства

Captures Captures Captures Captures

Получает коллекцию всех записей, соответствующих группе записи, в порядке, в котором первыми расположены внутренние слева направо (или внутренние справа налево, если регулярное выражение изменено с помощью параметра RightToLeft).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). Коллекция может иметь ноль и более элементов.The collection may have zero or more items.

(Inherited from Group)
Empty Empty Empty Empty

Получает пустую группу.Gets the empty group. Все неудавшиеся совпадения возвращают это пустое совпадение.All failed matches return this empty match.

Groups Groups Groups Groups

Получает коллекцию групп, соответствующих регулярному выражению.Gets a collection of groups matched by the regular expression.

Index Index Index Index

Позиция в исходной строке, в которой обнаружен первый символ записанной подстроки.The position in the original string where the first character of the captured substring is found.

(Inherited from Capture)
Length Length Length Length

Получает длину записанной подстроки.Gets the length of the captured substring.

(Inherited from Capture)
Name Name Name Name

Возвращает имя группы записи, представляемой текущим экземпляром.Returns the name of the capturing group represented by the current instance.

(Inherited from Group)
Success Success Success Success

Получает значение, указывающее на то, успешно ли совпадение.Gets a value indicating whether the match is successful.

(Inherited from Group)
Value Value Value Value

Получает записанную подстроку из входной строки.Gets the captured substring from the input string.

(Inherited from Capture)

Методы

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

Определяет, равен ли заданный объект текущему объекту.Determines whether the specified object is equal to the current object.

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

Служит хэш-функцией по умолчанию.Serves as the default hash function.

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

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

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

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

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

Возвращает новый объект Match с результатами для следующего сопоставления, начиная с позиции, на которой завершилось последнее сопоставление (с символа после последнего сопоставленного символа).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)

Возвращает расширение указанного шаблона замены.Returns the expansion of the specified replacement pattern.

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

Возвращает экземпляр Match, эквивалентный одному из предоставленных экземпляров, пригодному для совместного использования несколькими потоками.Returns a Match instance equivalent to the one supplied that is suitable to share between multiple threads.

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

Извлекает записанную подстроку из входной строки путем вызова свойства Value.Retrieves the captured substring from the input string by calling the Value property.

(Inherited from Capture)

Применяется к

Дополнительно