Regex.Match Метод

Определение

Находит во входной строке подстроку, совпадающую с шаблоном регулярного выражения, и возвращает первое вхождение в качестве единого объекта Match.

Перегрузки

Match(String, String, RegexOptions)

Ищет во входной строке первое вхождение заданного регулярного выражения, используя указанные параметры сопоставления.

Match(String)

Ищет в указанной входной строке первое вхождение регулярного выражения, указанного в конструкторе Regex.

Match(String, Int32)

Ищет во входной строке первое вхождение регулярного выражения, начиная с указанной начальной позиции.

Match(String, String)

Ищет в указанной входной строке первое вхождение заданного регулярного выражения.

Match(String, Int32, Int32)

Ищет во входной строке первое вхождение регулярного выражения, начиная с указанной начальной позиции и выполняя поиск только по указанному количеству символов.

Match(String, String, RegexOptions, TimeSpan)

Ищет во входной строке первое вхождение заданного регулярного выражения, используя указанные параметры сопоставления и интервал времени ожидания.

Match(String, String, RegexOptions)

Исходный код:
Regex.Match.cs
Исходный код:
Regex.Match.cs
Исходный код:
Regex.Match.cs

Ищет во входной строке первое вхождение заданного регулярного выражения, используя указанные параметры сопоставления.

public:
 static System::Text::RegularExpressions::Match ^ Match(System::String ^ input, System::String ^ pattern, System::Text::RegularExpressions::RegexOptions options);
public static System.Text.RegularExpressions.Match Match (string input, string pattern, System.Text.RegularExpressions.RegexOptions options);
static member Match : string * string * System.Text.RegularExpressions.RegexOptions -> System.Text.RegularExpressions.Match
Public Shared Function Match (input As String, pattern As String, options As RegexOptions) As Match

Параметры

input
String

Строка для поиска соответствия.

pattern
String

Шаблон регулярного выражения для сопоставления.

options
RegexOptions

Побитовая комбинация значений перечисления, предоставляющая параметры для сопоставления.

Возвращаемое значение

Объект, содержащий сведения о совпадении.

Исключения

Произошла ошибка анализа регулярного выражения.

Параметр input или pattern имеет значение null.

Параметр options не является допустимой битовой комбинацией значений RegexOptions.

Время ожидания истекло. Дополнительные сведения о времени ожидания см. в разделе "Примечания".

Примеры

В следующем примере определяется регулярное выражение, которое сопоставляет слова, начинающиеся с буквы "a". Он использует параметр , RegexOptions.IgnoreCase чтобы убедиться, что регулярное выражение находит слова, начинающиеся с прописных букв "a" и "a" в нижнем регистре.

using System;
using System.Text.RegularExpressions;

namespace Examples
{
    public class Example2
    {
        public static void Main()
        {
            string pattern = @"\ba\w*\b";
            string input = "An extraordinary day dawns with each new day.";
            Match m = Regex.Match(input, pattern, RegexOptions.IgnoreCase);
            if (m.Success)
                Console.WriteLine("Found '{0}' at position {1}.", m.Value, m.Index);
        }
    }
}

// The example displays the following output:
//        Found 'An' at position 0.
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim pattern As String = "\ba\w*\b"
      Dim input As String = "An extraordinary day dawns with each new day."
      Dim m As Match = Regex.Match(input, pattern, RegexOptions.IgnoreCase)
      If m.Success Then
         Console.WriteLine("Found '{0}' at position {1}.", m.Value, m.Index)
      End If
   End Sub
End Module
' The example displays the following output:
'       Found 'An' at position 0.

Возможные интерпретации шаблона регулярного выражения \ba\w*\b показаны в следующей таблице.

Шаблон Описание
\b Совпадение должно начинаться на границе слова.
a Соответствует символу "a".
\w* Совпадение с нулевым, одним или несколькими знаками слов.
\b Совпадение должно заканчиваться на границе слова.

Комментарии

Метод Match(String, String, RegexOptions) возвращает первую подстроку, соответствующую шаблону регулярного выражения во входной строке. Сведения об элементах языка, используемых для создания шаблона регулярных выражений, см. в разделе Язык регулярных выражений — краткий справочник.

Статический Match(String, String, RegexOptions) метод эквивалентен созданию Regex объекта с помощью конструктора Regex(String, RegexOptions) и вызову метода экземпляра Match(String) .

Параметр pattern состоит из элементов языка регулярных выражений, которые символично описывают соответствующую строку. Дополнительные сведения о регулярных выражениях см . в разделах Регулярные выражения .NET и Язык регулярных выражений — краткий справочник.

Вы можете определить, найден ли шаблон регулярного выражения во входной строке, проверив значение свойства возвращаемого MatchSuccess объекта. Если совпадение найдено, свойство возвращаемого MatchValue объекта содержит подстроку из input , соответствующую шаблону регулярного выражения. Если совпадение не найдено, его значение равно String.Empty.

Этот метод возвращает первую подстроку, найденную в input , которая соответствует шаблону регулярного выражения. Последующие совпадения можно получить, многократно вызывая метод возвращаемого MatchNextMatch объекта. Вы также можете получить все совпадения в одном вызове Regex.Matches(String, String, RegexOptions) метода, вызвав метод .

Исключение RegexMatchTimeoutException возникает, если время выполнения операции сопоставления превышает интервал времени ожидания, указанный для домена приложения, в котором вызывается метод. Если время ожидания не определено в свойствах домена приложения или если значение времени ожидания равно Regex.InfiniteMatchTimeout, исключение не создается.

Примечания для тех, кто вызывает этот метод

Время ожидания этого метода истекает после интервала, равного значению времени ожидания по умолчанию для домена приложения, в котором он вызывается. Если значение времени ожидания не определено для домена приложения, используется значение InfiniteMatchTimeout, которое предотвращает истечение времени ожидания метода. Рекомендуемый статический метод для получения совпадения шаблона — Match(String, String), который позволяет задать интервал времени ожидания.

См. также раздел

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

Match(String)

Исходный код:
Regex.Match.cs
Исходный код:
Regex.Match.cs
Исходный код:
Regex.Match.cs

Ищет в указанной входной строке первое вхождение регулярного выражения, указанного в конструкторе Regex.

public:
 System::Text::RegularExpressions::Match ^ Match(System::String ^ input);
public System.Text.RegularExpressions.Match Match (string input);
member this.Match : string -> System.Text.RegularExpressions.Match
Public Function Match (input As String) As Match

Параметры

input
String

Строка для поиска соответствия.

Возвращаемое значение

Объект, содержащий сведения о совпадении.

Исключения

input имеет значение null.

Время ожидания истекло. Дополнительные сведения о времени ожидания см. в разделе "Примечания".

Примеры

В следующем примере выполняется поиск совпадений шаблонов регулярного выражения в строке, а затем выводится список сопоставленных групп, записей и позиций захвата.

#using <System.dll>

using namespace System;
using namespace System::Text::RegularExpressions;
void main()
{
   
   String^ text = "One car red car blue car";
   String^ pat = "(\\w+)\\s+(car)";
   
   // Compile the regular expression.
   Regex^ r = gcnew Regex( pat,RegexOptions::IgnoreCase );
   
   // Match the regular expression pattern against a text string.
   Match^ m = r->Match(text);
   int matchCount = 0;
   while ( m->Success )
   {
      Console::WriteLine( "Match{0}", ++matchCount );
      for ( int i = 1; i <= 2; i++ )
      {
         Group^ g = m->Groups[ i ];
         Console::WriteLine( "Group{0}='{1}'", i, g );
         CaptureCollection^ cc = g->Captures;
         for ( int j = 0; j < cc->Count; j++ )
         {
            Capture^ c = cc[ j ];
            System::Console::WriteLine( "Capture{0}='{1}', Position={2}", j, c, c->Index );
         }
      }
      m = m->NextMatch();
   }
}  
// This example displays the following output:
//       Match1
//       Group1='One'
//       Capture0='One', Position=0
//       Group2='car'
//       Capture0='car', Position=4
//       Match2
//       Group1='red'
//       Capture0='red', Position=8
//       Group2='car'
//       Capture0='car', Position=12
//       Match3
//       Group1='blue'
//       Capture0='blue', Position=16
//       Group2='car'
//       Capture0='car', Position=21
using System;
using System.Text.RegularExpressions;

class Example
{
   static void Main()
   {
      string text = "One car red car blue car";
      string pat = @"(\w+)\s+(car)";

      // Instantiate the regular expression object.
      Regex r = new Regex(pat, RegexOptions.IgnoreCase);

      // Match the regular expression pattern against a text string.
      Match m = r.Match(text);
      int matchCount = 0;
      while (m.Success)
      {
         Console.WriteLine("Match"+ (++matchCount));
         for (int i = 1; i <= 2; i++)
         {
            Group g = m.Groups[i];
            Console.WriteLine("Group"+i+"='" + g + "'");
            CaptureCollection cc = g.Captures;
            for (int j = 0; j < cc.Count; j++)
            {
               Capture c = cc[j];
               System.Console.WriteLine("Capture"+j+"='" + c + "', Position="+c.Index);
            }
         }
         m = m.NextMatch();
      }
   }
}
// This example displays the following output:
//       Match1
//       Group1='One'
//       Capture0='One', Position=0
//       Group2='car'
//       Capture0='car', Position=4
//       Match2
//       Group1='red'
//       Capture0='red', Position=8
//       Group2='car'
//       Capture0='car', Position=12
//       Match3
//       Group1='blue'
//       Capture0='blue', Position=16
//       Group2='car'
//       Capture0='car', Position=21
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim text As String = "One car red car blue car"
      Dim pattern As String = "(\w+)\s+(car)"

      ' Instantiate the regular expression object.
      Dim r As Regex = new Regex(pattern, RegexOptions.IgnoreCase)

      ' Match the regular expression pattern against a text string.
      Dim m As Match = r.Match(text)
      Dim matchcount as Integer = 0
      Do While m.Success
         matchCount += 1
         Console.WriteLine("Match" & (matchCount))
         Dim i As Integer
         For i = 1 to 2
            Dim g as Group = m.Groups(i)
            Console.WriteLine("Group" & i & "='" & g.ToString() & "'")
            Dim cc As CaptureCollection = g.Captures
            Dim j As Integer 
            For j = 0 to cc.Count - 1
              Dim c As Capture = cc(j)
               Console.WriteLine("Capture" & j & "='" & c.ToString() _
                  & "', Position=" & c.Index)
            Next 
         Next 
         m = m.NextMatch()
      Loop
   End Sub
End Module
' This example displays the following output:
'       Match1
'       Group1='One'
'       Capture0='One', Position=0
'       Group2='car'
'       Capture0='car', Position=4
'       Match2
'       Group1='red'
'       Capture0='red', Position=8
'       Group2='car'
'       Capture0='car', Position=12
'       Match3
'       Group1='blue'
'       Capture0='blue', Position=16
'       Group2='car'
'       Capture0='car', Position=21

Шаблон (\w+)\s+(car) регулярного выражения соответствует вхождениям слова "автомобиль" и предшествующему ему слову. Он интерпретируется, как показано в следующей таблице.

Шаблон Описание
(\w+) Совпадение с одним или несколькими символами слова. Это первая группа записи.
\s+ Совпадение с одним или несколькими пробелами.
(автомобиль) Соответствует строке литерала "car". Это вторая группа записи.

Комментарии

Метод Match(String) возвращает первую подстроку, соответствующую шаблону регулярного выражения во входной строке. Сведения об элементах языка, используемых для создания шаблона регулярных выражений, см. в разделе Язык регулярных выражений — краткий справочник.

Вы можете определить, найден ли шаблон регулярного выражения во входной строке, проверив значение свойства возвращаемого MatchSuccess объекта. Если совпадение найдено, свойство возвращаемого MatchValue объекта содержит подстроку из input , соответствующую шаблону регулярного выражения. Если совпадение не найдено, его значение равно String.Empty.

Этот метод возвращает первую подстроку в input , соответствующую шаблону регулярного выражения. Последующие совпадения можно получить, многократно вызывая метод возвращаемого MatchMatch.NextMatch объекта. Вы также можете получить все совпадения в одном вызове Regex.Matches(String) метода, вызвав метод .

Исключение RegexMatchTimeoutException возникает, если время выполнения операции сопоставления превышает интервал времени ожидания, заданный конструктором Regex.Regex(String, RegexOptions, TimeSpan) . Если при вызове конструктора не задан интервал времени ожидания, создается исключение, если операция превышает любое значение времени ожидания, установленное для домена приложения, в котором Regex создается объект. Если время ожидания не определено в Regex вызове конструктора или в свойствах домена приложения или если значение времени ожидания равно Regex.InfiniteMatchTimeout, исключение не создается.

См. также раздел

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

Match(String, Int32)

Исходный код:
Regex.Match.cs
Исходный код:
Regex.Match.cs
Исходный код:
Regex.Match.cs

Ищет во входной строке первое вхождение регулярного выражения, начиная с указанной начальной позиции.

public:
 System::Text::RegularExpressions::Match ^ Match(System::String ^ input, int startat);
public System.Text.RegularExpressions.Match Match (string input, int startat);
member this.Match : string * int -> System.Text.RegularExpressions.Match
Public Function Match (input As String, startat As Integer) As Match

Параметры

input
String

Строка для поиска соответствия.

startat
Int32

Отсчитываемая от нуля позиция символа, с которой начинается поиск.

Возвращаемое значение

Объект, содержащий сведения о совпадении.

Исключения

input имеет значение null.

Параметр startat имеет значение меньше нуля или больше длины input.

Время ожидания истекло. Дополнительные сведения о времени ожидания см. в разделе "Примечания".

Комментарии

Дополнительные сведения об этом API см. в разделе Дополнительные примечания API для Regex.Match.

См. также раздел

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

Match(String, String)

Исходный код:
Regex.Match.cs
Исходный код:
Regex.Match.cs
Исходный код:
Regex.Match.cs

Ищет в указанной входной строке первое вхождение заданного регулярного выражения.

public:
 static System::Text::RegularExpressions::Match ^ Match(System::String ^ input, System::String ^ pattern);
public static System.Text.RegularExpressions.Match Match (string input, string pattern);
static member Match : string * string -> System.Text.RegularExpressions.Match
Public Shared Function Match (input As String, pattern As String) As Match

Параметры

input
String

Строка для поиска соответствия.

pattern
String

Шаблон регулярного выражения для сопоставления.

Возвращаемое значение

Объект, содержащий сведения о совпадении.

Исключения

Произошла ошибка анализа регулярного выражения.

Параметр input или pattern имеет значение null.

Время ожидания истекло. Дополнительные сведения о времени ожидания см. в разделе "Примечания".

Примеры

В следующем примере вызывается Match(String, String) метод для поиска первого слова, содержащего по крайней мере один z символ, а затем вызывается Match.NextMatch метод для поиска дополнительных совпадений.

using System;
using System.Text.RegularExpressions;

namespace Examples
{
    public class Example
    {
        public static void Main()
        {
            string input = "ablaze beagle choral dozen elementary fanatic " +
                           "glaze hunger inept jazz kitchen lemon minus " +
                           "night optical pizza quiz restoration stamina " +
                           "train unrest vertical whiz xray yellow zealous";
            string pattern = @"\b\w*z+\w*\b";
            Match m = Regex.Match(input, pattern);
            while (m.Success)
            {
                Console.WriteLine("'{0}' found at position {1}", m.Value, m.Index);
                m = m.NextMatch();
            }
        }
    }
}

// The example displays the following output:
//    'ablaze' found at position 0
//    'dozen' found at position 21
//    'glaze' found at position 46
//    'jazz' found at position 65
//    'pizza' found at position 104
//    'quiz' found at position 110
//    'whiz' found at position 157
//    'zealous' found at position 174
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim input As String = "ablaze beagle choral dozen elementary fanatic " +
                            "glaze hunger inept jazz kitchen lemon minus " +
                            "night optical pizza quiz restoration stamina " +
                            "train unrest vertical whiz xray yellow zealous"
      Dim pattern As String = "\b\w*z+\w*\b"
      Dim m As Match = Regex.Match(input, pattern)
      Do While m.Success 
         Console.WriteLine("'{0}' found at position {1}", m.Value, m.Index)
         m = m.NextMatch()
      Loop                      
   End Sub
End Module
' The example displays the following output:
    'ablaze' found at position 0
    'dozen' found at position 21
    'glaze' found at position 46
    'jazz' found at position 65
    'pizza' found at position 104
    'quiz' found at position 110
    'whiz' found at position 157
    'zealous' found at position 174

Возможные интерпретации шаблона регулярного выражения \b\w*z+\w*\b показаны в следующей таблице.

Шаблон Описание
\b Совпадение должно начинаться на границе слова.
\w* Совпадение с нулевым, одним или несколькими знаками слов.
z+ Совпадение с одним или несколькими вхождениями символа z .
\w* Совпадение с нулевым, одним или несколькими знаками слов.
\b Совпадение должно заканчиваться на границе слова.

Комментарии

Метод Match(String, String) возвращает первую подстроку, соответствующую шаблону регулярного выражения во входной строке. Сведения об элементах языка, используемых для создания шаблона регулярных выражений, см. в разделе Язык регулярных выражений — краткий справочник.

Статический Match(String, String) метод эквивалентен созданию объекта с указанным шаблоном Regex регулярного выражения и вызову метода экземпляра Match(String) . В этом случае обработчик регулярных выражений кэширует шаблон регулярного выражения.

Параметр pattern состоит из элементов языка регулярных выражений, которые символично описывают соответствующую строку. Дополнительные сведения о регулярных выражениях см . в разделах Регулярные выражения .NET и Язык регулярных выражений — краткий справочник.

Вы можете определить, найден ли шаблон регулярного выражения во входной строке, проверив значение свойства возвращаемого MatchSuccess объекта. Если совпадение найдено, свойство возвращаемого MatchValue объекта содержит подстроку из input , соответствующую шаблону регулярного выражения. Если совпадение не найдено, его значение равно String.Empty.

Этот метод возвращает первую подстроку в input , соответствующую шаблону регулярного выражения. Последующие совпадения можно получить, многократно вызывая метод возвращаемого MatchMatch.NextMatch объекта. Вы также можете получить все совпадения в одном вызове Regex.Matches(String, String) метода, вызвав метод .

Исключение RegexMatchTimeoutException возникает, если время выполнения операции сопоставления превышает интервал времени ожидания, указанный для домена приложения, в котором вызывается метод. Если время ожидания не определено в свойствах домена приложения или если значение времени ожидания равно Regex.InfiniteMatchTimeout, исключение не создается.

Примечания для тех, кто вызывает этот метод

Время ожидания этого метода истекает после интервала, равного значению времени ожидания по умолчанию для домена приложения, в котором он вызывается. Если значение времени ожидания не определено для домена приложения, используется значение InfiniteMatchTimeout, которое предотвращает истечение времени ожидания метода. Рекомендуемый статический метод для получения совпадения шаблона — Match(String, String), который позволяет задать интервал времени ожидания.

См. также раздел

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

Match(String, Int32, Int32)

Исходный код:
Regex.Match.cs
Исходный код:
Regex.Match.cs
Исходный код:
Regex.Match.cs

Ищет во входной строке первое вхождение регулярного выражения, начиная с указанной начальной позиции и выполняя поиск только по указанному количеству символов.

public:
 System::Text::RegularExpressions::Match ^ Match(System::String ^ input, int beginning, int length);
public System.Text.RegularExpressions.Match Match (string input, int beginning, int length);
member this.Match : string * int * int -> System.Text.RegularExpressions.Match
Public Function Match (input As String, beginning As Integer, length As Integer) As Match

Параметры

input
String

Строка для поиска соответствия.

beginning
Int32

Отсчитываемая от нуля позиция символа во входной строке, определяющая самую левую позицию диапазона поиска.

length
Int32

Количество символов в подстроке для включения в поиск.

Возвращаемое значение

Объект, содержащий сведения о совпадении.

Исключения

input имеет значение null.

Параметр beginning имеет значение меньше нуля или больше длины input.

-или-

Параметр length имеет значение меньше нуля или больше длины input.

-или-

beginning+length-1 определяет позицию, которая находится вне диапазона input.

Время ожидания истекло. Дополнительные сведения о времени ожидания см. в разделе "Примечания".

Комментарии

Метод Match(String, Int32, Int32) возвращает первую подстроку, соответствующую шаблону регулярного выражения в части входной строки. Сведения об элементах языка, используемых для создания шаблона регулярных выражений, см. в разделе Язык регулярных выражений — краткий справочник.

Шаблон регулярного Match(String, Int32, Int32) выражения, для которого выполняется поиск метода, определяется вызовом одного из Regex конструкторов класса. Дополнительные сведения об элементах, которые могут формировать шаблон регулярного выражения, см. в разделе Язык регулярных выражений — краткий справочник.

Метод Match(String, Int32, Int32) выполняет поиск части, определенной параметрами beginninginput и length , для шаблона регулярного выражения. beginning всегда определяет индекс крайнего левого символа, включаемого в поиск, и length определяет максимальное количество символов для поиска. Вместе они определяют диапазон поиска. Поведение в точности так же, как если бы input был фактически input.Substring(beginning, length), за исключением того, что индекс любого совпадения учитывается относительно начала input. Это означает, что любые утверждения привязок или нулевой ширины в начале или конце шаблона ведут себя так, как если бы за пределами этого диапазона нет input . Например, привязки , и будут удовлетворены ^в beginning и $ и и \z будут удовлетворены в beginning + length - 1.\A\G

Если поиск выполняется слева направо (по умолчанию), обработчик регулярных выражений выполняет поиск от символа по индексу beginning до символа в индексе beginning + length - 1. Если обработчик регулярных выражений был создан с помощью RegexOptions.RightToLeft параметра , чтобы поиск выполнялся справа налево, то обработчик регулярных выражений выполняет поиск от символа по индексу beginning + length - 1 до символа в индексе beginning.

Этот метод возвращает первое совпадение, найденного в этом диапазоне. Последующие совпадения можно получить, многократно вызывая метод возвращаемого MatchMatch.NextMatch объекта.

Вы можете определить, найден ли шаблон регулярного выражения во входной строке, проверив значение свойства возвращаемого MatchSuccess объекта. Если совпадение найдено, свойство возвращаемого MatchValue объекта содержит подстроку из input , соответствующую шаблону регулярного выражения. Если совпадение не найдено, его значение равно String.Empty.

Исключение RegexMatchTimeoutException возникает, если время выполнения операции сопоставления превышает интервал времени ожидания, заданный конструктором Regex.Regex(String, RegexOptions, TimeSpan) . Если значение времени ожидания не задано при вызове конструктора, возникает исключение, если операция превышает любое значение времени ожидания, установленное для домена приложения, в котором Regex создается объект. Если время ожидания не определено в Regex вызове конструктора или в свойствах домена приложения или если значение времени ожидания равно Regex.InfiniteMatchTimeout, исключение не создается.

См. также раздел

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

Match(String, String, RegexOptions, TimeSpan)

Исходный код:
Regex.Match.cs
Исходный код:
Regex.Match.cs
Исходный код:
Regex.Match.cs

Ищет во входной строке первое вхождение заданного регулярного выражения, используя указанные параметры сопоставления и интервал времени ожидания.

public:
 static System::Text::RegularExpressions::Match ^ Match(System::String ^ input, System::String ^ pattern, System::Text::RegularExpressions::RegexOptions options, TimeSpan matchTimeout);
public static System.Text.RegularExpressions.Match Match (string input, string pattern, System.Text.RegularExpressions.RegexOptions options, TimeSpan matchTimeout);
static member Match : string * string * System.Text.RegularExpressions.RegexOptions * TimeSpan -> System.Text.RegularExpressions.Match
Public Shared Function Match (input As String, pattern As String, options As RegexOptions, matchTimeout As TimeSpan) As Match

Параметры

input
String

Строка для поиска соответствия.

pattern
String

Шаблон регулярного выражения для сопоставления.

options
RegexOptions

Побитовая комбинация значений перечисления, предоставляющая параметры для сопоставления.

matchTimeout
TimeSpan

Интервал времени ожидания или InfiniteMatchTimeout, чтобы указать, что метод не должен превышать время ожидания.

Возвращаемое значение

Объект, содержащий сведения о совпадении.

Исключения

Произошла ошибка анализа регулярного выражения.

Параметр input или pattern имеет значение null.

Параметр options не является допустимой битовой комбинацией значений RegexOptions.

-или-

Значение параметра matchTimeout отрицательное, равно нулю или больше, чем приблизительно 24 дня.

Время ожидания истекло. Дополнительные сведения о времени ожидания см. в разделе "Примечания".

Комментарии

Метод Match(String, String, RegexOptions, TimeSpan) возвращает первую подстроку, соответствующую шаблону регулярного выражения во входной строке. Сведения об элементах языка, используемых для создания шаблона регулярных выражений, см. в разделе Язык регулярных выражений — краткий справочник.

Статический Match(String, String, RegexOptions, TimeSpan) метод эквивалентен созданию Regex объекта с помощью конструктора Regex(String, RegexOptions, TimeSpan) и вызову метода экземпляра Match(String) .

Параметр pattern состоит из элементов языка регулярных выражений, которые символично описывают соответствующую строку. Дополнительные сведения о регулярных выражениях см . в разделах Регулярные выражения .NET и Язык регулярных выражений — краткий справочник.

Вы можете определить, найден ли шаблон регулярного выражения во входной строке, проверив значение свойства возвращаемого MatchSuccess объекта. Если совпадение найдено, свойство возвращаемого MatchValue объекта содержит подстроку из input , соответствующую шаблону регулярного выражения. Если совпадение не найдено, его значение равно String.Empty.

Этот метод возвращает первую подстроку, найденную в input , которая соответствует шаблону регулярного выражения. Последующие совпадения можно получить, многократно вызывая метод возвращаемого MatchNextMatch объекта. Вы также можете получить все совпадения в одном вызове Regex.Matches(String, String, RegexOptions) метода, вызвав метод .

Параметр matchTimeout указывает, как долго метод сопоставления шаблонов должен пытаться найти совпадение до истечения времени ожидания. Установка интервала времени ожидания предотвращает появление регулярных выражений, которые зависят от чрезмерного обратного отслеживания, чтобы перестать отвечать при обработке входных данных, содержащих почти совпадения. Дополнительные сведения см. в разделе Рекомендации по регулярным выражениям и обратному отслеживанию. Если совпадение не найдено в течение этого интервала времени, метод создает RegexMatchTimeoutException исключение. matchTimeout Переопределяет любое значение времени ожидания по умолчанию, определенное для домена приложения, в котором выполняется метод.

Примечания для тех, кто вызывает этот метод

Рекомендуется задать для параметра соответствующее matchTimeout значение, например две секунды. Если отключить время ожидания, указав InfiniteMatchTimeout, подсистема регулярных выражений обеспечивает немного более высокую производительность. Однако отключать время ожидания следует только при следующих условиях:

  • Когда входные данные, обрабатываемые регулярным выражением, являются производными от известного и доверенного источника или состоят из статического текста. Это исключает текст, который был динамически введен пользователями.

  • Если шаблон регулярного выражения был тщательно протестирован, чтобы убедиться, что он эффективно обрабатывает совпадения, несоверчатые и близкие совпадения.

  • Если шаблон регулярного выражения не содержит языковых элементов, которые, как известно, приводят к чрезмерному возврату при обработке близкого совпадения.

См. также раздел

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