Regex.Match Метод

Определение

Находит во входной строке подстроку, совпадающую с шаблоном регулярного выражения, и возвращает первое вхождение в качестве единого объекта Match.Searches an input string for a substring that matches a regular expression pattern and returns the first occurrence as a single Match object.

Перегрузки

Match(String, String, RegexOptions, TimeSpan)

Ищет во входной строке первое вхождение заданного регулярного выражения, используя указанные параметры сопоставления и интервал времени ожидания.Searches the input string for the first occurrence of the specified regular expression, using the specified matching options and time-out interval.

Match(String, Int32, Int32)

Ищет во входной строке первое вхождение регулярного выражения, начиная с указанной начальной позиции и выполняя поиск только по указанному количеству символов.Searches the input string for the first occurrence of a regular expression, beginning at the specified starting position and searching only the specified number of characters.

Match(String, String, RegexOptions)

Ищет во входной строке первое вхождение заданного регулярного выражения, используя указанные параметры сопоставления.Searches the input string for the first occurrence of the specified regular expression, using the specified matching options.

Match(String, Int32)

Ищет во входной строке первое вхождение регулярного выражения, начиная с указанной начальной позиции.Searches the input string for the first occurrence of a regular expression, beginning at the specified starting position in the string.

Match(String)

Ищет в указанной входной строке первое вхождение регулярного выражения, указанного в конструкторе Regex.Searches the specified input string for the first occurrence of the regular expression specified in the Regex constructor.

Match(String, String)

Ищет в указанной входной строке первое вхождение заданного регулярного выражения.Searches the specified input string for the first occurrence of the specified regular expression.

Match(String, String, RegexOptions, TimeSpan)

Ищет во входной строке первое вхождение заданного регулярного выражения, используя указанные параметры сопоставления и интервал времени ожидания.Searches the input string for the first occurrence of the specified regular expression, using the specified matching options and time-out interval.

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

Строка для поиска соответствия.The string to search for a match.

pattern
String

Шаблон регулярного выражения для сопоставления.The regular expression pattern to match.

options
RegexOptions

Побитовая комбинация значений перечисления, предоставляющая параметры для сопоставления.A bitwise combination of the enumeration values that provide options for matching.

matchTimeout
TimeSpan

Интервал времени ожидания или InfiniteMatchTimeout, чтобы указать, что метод не должен превышать время ожидания.A time-out interval, or InfiniteMatchTimeout to indicate that the method should not time out.

Возвраты

Объект, содержащий сведения о совпадении.An object that contains information about the match.

Исключения

Произошла ошибка анализа регулярного выражения.A regular expression parsing error occurred.

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

options не является допустимой битовой комбинацией значений RegexOptions .options is not a valid bitwise combination of RegexOptions values.

- или --or- Значение параметра matchTimeout отрицательное, равно нулю или больше, чем приблизительно 24 дня.matchTimeout is negative, zero, or greater than approximately 24 days.

Время ожидания истекло.A time-out occurred. Дополнительные сведения о времени ожидания см. в разделе "Примечания".For more information about time-outs, see the Remarks section.

Комментарии

Match(String, String, RegexOptions, TimeSpan) Метод возвращает первую подстроку, которая соответствует шаблону регулярного выражения во входной строке.The Match(String, String, RegexOptions, TimeSpan) method returns the first substring that matches a regular expression pattern in an input string. Сведения об элементах языка, используемых для создания шаблона регулярного выражения, см. в разделе Язык регулярных выражений — краткий справочник.For information about the language elements used to build a regular expression pattern, see Regular Expression Language - Quick Reference.

Статический Match(String, String, RegexOptions, TimeSpan) метод эквивалентен созданию Regex объекта с помощью Regex(String, RegexOptions, TimeSpan) конструктора и вызову метода экземпляра Match(String) .The static Match(String, String, RegexOptions, TimeSpan) method is equivalent to constructing a Regex object with the Regex(String, RegexOptions, TimeSpan) constructor and calling the instance Match(String) method.

pattern Параметр состоит из элементов языка регулярных выражений, которые в символьном виде описывают строку для сопоставления.The pattern parameter consists of regular expression language elements that symbolically describe the string to match. Дополнительные сведения о регулярных выражениях см. в разделе .NET Framework регулярные выражения и Язык регулярных выражений — краткий справочник.For more information about regular expressions, see .NET Framework Regular Expressions and Regular Expression Language - Quick Reference.

Можно определить, найден ли шаблон регулярного выражения во входной строке, проверив значение Match Success свойства возвращенного объекта.You can determine whether the regular expression pattern has been found in the input string by checking the value of the returned Match object's Success property. Если найдено совпадение, Match Value свойство возвращаемого объекта input содержит подстроку, соответствующую шаблону регулярного выражения.If a match is found, the returned Match object's Value property contains the substring from input that matches the regular expression pattern. Если совпадений не найдено, его значение равно String.Empty.If no match is found, its value is String.Empty.

Этот метод возвращает первую подстроку, найденную в input , которая соответствует шаблону регулярного выражения.This method returns the first substring found in input that matches the regular expression pattern. Последующие совпадения можно получить, повторно вызвав Match NextMatch метод возвращенного объекта.You can retrieve subsequent matches by repeatedly calling the returned Match object's NextMatch method. Можно также получить все совпадения в одном вызове метода, вызвав Regex.Matches(String, String, RegexOptions) метод.You can also retrieve all matches in a single method call by calling the Regex.Matches(String, String, RegexOptions) method.

matchTimeout Параметр указывает, как долго метод сопоставления шаблонов должен пытаться найти соответствие до истечения времени ожидания. Установка интервала времени ожидания предотвращает зависание регулярных выражений, которые полагаются на избыточное выполнение поиска с возвратом, при обработке входных данных, содержащих близкие совпадения.The matchTimeout parameter specifies how long a pattern matching method should try to find a match before it times out. Setting a time-out interval prevents regular expressions that rely on excessive backtracking from appearing to stop responding when they process input that contains near matches. Дополнительные сведения см. в разделе рекомендации по использованию регулярных выражений и поискас возвратом.For more information, see Best Practices for Regular Expressions and Backtracking. Если в течение этого интервала времени совпадения не найдены, метод создает RegexMatchTimeoutException исключение.If no match is found in that time interval, the method throws a RegexMatchTimeoutException exception. matchTimeoutпереопределяет любое значение времени ожидания по умолчанию, определенное для домена приложения, в котором выполняется метод.matchTimeout overrides any default time-out value defined for the application domain in which the method executes.

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

Рекомендуется присвоить matchTimeout параметру соответствующее значение, например две секунды.We recommend that you set the matchTimeout parameter to an appropriate value, such as two seconds. Если вы отключаете время ожидания, указав InfiniteMatchTimeout, механизм регулярных выражений обеспечивает немного более высокую производительность.If you disable time-outs by specifying InfiniteMatchTimeout, the regular expression engine offers slightly better performance. Однако время ожидания следует отключить только при следующих условиях.However, you should disable time-outs only under the following conditions: — Если входные данные, обрабатываемые регулярным выражением, являются производными от известного и надежного источника или состоят из статического текста.- When the input processed by a regular expression is derived from a known and trusted source or consists of static text. Это исключает текст, введенный пользователями динамически.This excludes text that has been dynamically input by users.

— При тщательном тестировании шаблона регулярного выражения для обеспечения эффективной обработки совпадений, несоответствий и близких соответствий.- When the regular expression pattern has been thoroughly tested to ensure that it efficiently handles matches, non-matches, and near matches.

— Если шаблон регулярного выражения не содержит элементов языка, которые вызывают избыточный поиск с возвратом при обработке близкого соответствия.- When the regular expression pattern contains no language elements that are known to cause excessive backtracking when processing a near match.

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

Match(String, Int32, Int32)

Ищет во входной строке первое вхождение регулярного выражения, начиная с указанной начальной позиции и выполняя поиск только по указанному количеству символов.Searches the input string for the first occurrence of a regular expression, beginning at the specified starting position and searching only the specified number of characters.

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

Строка для поиска соответствия.The string to search for a match.

beginning
Int32

Отсчитываемая от нуля позиция символа во входной строке, определяющая самую левую позицию диапазона поиска.The zero-based character position in the input string that defines the leftmost position to be searched.

length
Int32

Количество символов в подстроке для включения в поиск.The number of characters in the substring to include in the search.

Возвраты

Объект, содержащий сведения о совпадении.An object that contains information about the match.

Исключения

inputnull.input is null.

Параметрbeginning имеет значение меньше нуля или больше длины input.beginning is less than zero or greater than the length of input.

- или --or- Параметр length имеет значение меньше нуля или больше длины input.length is less than zero or greater than the length of input.

- или --or- beginning+length-1 определяет позицию, которая находится вне диапазона input.beginning+length-1 identifies a position that is outside the range of input.

Время ожидания истекло.A time-out occurred. Дополнительные сведения о времени ожидания см. в разделе "Примечания".For more information about time-outs, see the Remarks section.

Комментарии

Match(String, Int32, Int32) Метод возвращает первую подстроку, которая соответствует шаблону регулярного выражения в части входной строки.The Match(String, Int32, Int32) method returns the first substring that matches a regular expression pattern in a portion of an input string. Сведения об элементах языка, используемых для создания шаблона регулярного выражения, см. в разделе Язык регулярных выражений — краткий справочник.For information about the language elements used to build a regular expression pattern, see Regular Expression Language - Quick Reference.

Шаблон регулярного выражения, для которого Match(String, Int32, Int32) выполняется поиск метода, определяется вызовом одного Regex из конструкторов класса.The regular expression pattern for which the Match(String, Int32, Int32) method searches is defined by the call to one of the Regex class constructors. Дополнительные сведения об элементах, которые могут формировать шаблон регулярного выражения, см. в разделе Язык регулярных выражений — краткий справочник.For more information about the elements that can form a regular expression pattern, see Regular Expression Language - Quick Reference.

Метод ищет beginning часть, определенную параметрами и length для шаблона регулярного выражения. input Match(String, Int32, Int32)The Match(String, Int32, Int32) method searches the portion of input defined by the beginning and length parameters for the regular expression pattern. beginningвсегда определяет индекс крайнего левого символа, включаемого в поиск, и length определяет максимальное число символов для поиска.beginning always defines the index of the leftmost character to include in the search, and length defines the maximum number of characters to search. Вместе они определяют диапазон поиска.Together, they define the range of the search. Если поиск продолжается слева направо (по умолчанию), обработчик регулярных выражений выполняет поиск beginning символа по индексу в позиции с индексом beginning + length -1.If the search proceeds from left to right (the default), the regular expression engine searches from the character at index beginning to the character at index beginning + length - 1. Если экземпляр обработчика регулярных выражений был создан с помощью RegexOptions.RightToLeft параметра, чтобы поиск осуществлялся справа налево, обработчик регулярных выражений ищет из символа в индексе beginning + length -1 значение символ по индексу beginning.If the regular expression engine was instantiated by using the RegexOptions.RightToLeft option so that the search proceeds from right to left, the regular expression engine searches from the character at index beginning + length - 1 to the character at index beginning. Этот метод возвращает первое совпадение, найденное в этом диапазоне.This method returns the first match that it finds within this range. Последующие совпадения можно получить, повторно вызвав Match Match.NextMatch метод возвращенного объекта.You can retrieve subsequent matches by repeatedly calling the returned Match object's Match.NextMatch method.

Можно определить, найден ли шаблон регулярного выражения во входной строке, проверив значение Match Success свойства возвращенного объекта.You can determine whether the regular expression pattern has been found in the input string by checking the value of the returned Match object's Success property. Если найдено совпадение, Match Value свойство возвращаемого объекта input содержит подстроку, соответствующую шаблону регулярного выражения.If a match is found, the returned Match object's Value property contains the substring from input that matches the regular expression pattern. Если совпадений не найдено, его значение равно String.Empty.If no match is found, its value is String.Empty.

Исключение возникает, если время выполнения операции сопоставления превышает интервал времени ожидания, заданный Regex.Regex(String, RegexOptions, TimeSpan) конструктором. RegexMatchTimeoutExceptionThe RegexMatchTimeoutException exception is thrown if the execution time of the matching operation exceeds the time-out interval specified by the Regex.Regex(String, RegexOptions, TimeSpan) constructor. Если не задать значение времени ожидания при вызове конструктора, исключение создается, если операция превышает любое значение времени ожидания, установленное для домена приложения, в котором Regex создан объект.If you do not set a time-out value when you call the constructor, the exception is thrown if the operation exceeds any time-out value established for the application domain in which the Regex object is created. Если время ожидания не определено в Regex вызове конструктора или в свойствах домена приложения или если значение времени ожидания равно Regex.InfiniteMatchTimeout, исключение не создается.If no time-out is defined in the Regex constructor call or in the application domain's properties, or if the time-out value is Regex.InfiniteMatchTimeout, no exception is thrown.

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

Match(String, String, RegexOptions)

Ищет во входной строке первое вхождение заданного регулярного выражения, используя указанные параметры сопоставления.Searches the input string for the first occurrence of the specified regular expression, using the specified matching options.

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

Строка для поиска соответствия.The string to search for a match.

pattern
String

Шаблон регулярного выражения для сопоставления.The regular expression pattern to match.

options
RegexOptions

Побитовая комбинация значений перечисления, предоставляющая параметры для сопоставления.A bitwise combination of the enumeration values that provide options for matching.

Возвраты

Объект, содержащий сведения о совпадении.An object that contains information about the match.

Исключения

Произошла ошибка анализа регулярного выражения.A regular expression parsing error occurred.

Значение параметра input или patternnull.input or pattern is null.

Параметр options не является допустимой битовой комбинацией значений RegexOptions.options is not a valid bitwise combination of RegexOptions values.

Время ожидания истекло.A time-out occurred. Дополнительные сведения о времени ожидания см. в разделе "Примечания".For more information about time-outs, see the Remarks section.

Примеры

В следующем примере определяется регулярное выражение, которое соответствует словам, начинающимся с буквы "a".The following example defines a regular expression that matches words beginning with the letter "a". Он использует RegexOptions.IgnoreCase параметр, чтобы гарантировать, что регулярное выражение находит слова, начинающиеся с прописной буквы "a" и строчной буквы "a".It uses the RegexOptions.IgnoreCase option to ensure that the regular expression locates words beginning with both an uppercase "a" and a lowercase "a".

using System;
using System.Text.RegularExpressions;

public class Example
{
   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 показаны в следующей таблице.The regular expression pattern \ba\w*\b is interpreted as shown in the following table.

ШаблонPattern ОписаниеDescription
\b Совпадение должно начинаться на границе слова.Begin the match at a word boundary.
a Совпадение с символом "a".Match the character "a".
\w* Совпадение с нулем, одним или несколькими символами слова.Match zero, one, or more word characters.
\b Совпадение должно заканчиваться на границе слова.End the match at a word boundary.

Комментарии

Match(String, String, RegexOptions) Метод возвращает первую подстроку, которая соответствует шаблону регулярного выражения во входной строке.The Match(String, String, RegexOptions) method returns the first substring that matches a regular expression pattern in an input string. Сведения об элементах языка, используемых для создания шаблона регулярного выражения, см. в разделе Язык регулярных выражений — краткий справочник.For information about the language elements used to build a regular expression pattern, see Regular Expression Language - Quick Reference.

Статический Match(String, String, RegexOptions) метод эквивалентен созданию Regex объекта с помощью Regex(String, RegexOptions) конструктора и вызову метода экземпляра Match(String) .The static Match(String, String, RegexOptions) method is equivalent to constructing a Regex object with the Regex(String, RegexOptions) constructor and calling the instance Match(String) method.

pattern Параметр состоит из элементов языка регулярных выражений, которые в символьном виде описывают строку для сопоставления.The pattern parameter consists of regular expression language elements that symbolically describe the string to match. Дополнительные сведения о регулярных выражениях см. в разделе .NET Framework регулярные выражения и Язык регулярных выражений — краткий справочник.For more information about regular expressions, see .NET Framework Regular Expressions and Regular Expression Language - Quick Reference.

Можно определить, найден ли шаблон регулярного выражения во входной строке, проверив значение Match Success свойства возвращенного объекта.You can determine whether the regular expression pattern has been found in the input string by checking the value of the returned Match object's Success property. Если найдено совпадение, Match Value свойство возвращаемого объекта input содержит подстроку, соответствующую шаблону регулярного выражения.If a match is found, the returned Match object's Value property contains the substring from input that matches the regular expression pattern. Если совпадений не найдено, его значение равно String.Empty.If no match is found, its value is String.Empty.

Этот метод возвращает первую подстроку, найденную в input , которая соответствует шаблону регулярного выражения.This method returns the first substring found in input that matches the regular expression pattern. Последующие совпадения можно получить, повторно вызвав Match NextMatch метод возвращенного объекта.You can retrieve subsequent matches by repeatedly calling the returned Match object's NextMatch method. Можно также получить все совпадения в одном вызове метода, вызвав Regex.Matches(String, String, RegexOptions) метод.You can also retrieve all matches in a single method call by calling the Regex.Matches(String, String, RegexOptions) method.

RegexMatchTimeoutException Исключение возникает, если время выполнения операции сопоставления превышает интервал времени ожидания, указанный для домена приложения, в котором вызывается метод.The RegexMatchTimeoutException exception is thrown if the execution time of the matching operation exceeds the time-out interval specified for the application domain in which the method is called. Если время ожидания не определено в свойствах домена приложения или если значение времени ожидания равно Regex.InfiniteMatchTimeout, исключение не создается.If no time-out is defined in the application domain's properties, or if the time-out value is Regex.InfiniteMatchTimeout, no exception is thrown.

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

Время ожидания этого метода истекает после интервала, который равен значению времени ожидания по умолчанию для домена приложения, в котором он вызывается.This method times out after an interval that is equal to the default time-out value of the application domain in which it is called. Если для домена приложения не определено значение времени ожидания, то используется значение InfiniteMatchTimeout, запрещающее истечение времени ожидания метода.If a time-out value has not been defined for the application domain, the value InfiniteMatchTimeout, which prevents the method from timing out, is used. Для получения соответствия Match(String, String)шаблону рекомендуется использовать статический метод, который позволяет установить интервал времени ожидания.The recommended static method for retrieving a pattern match is Match(String, String), which lets you set the time-out interval.

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

Match(String, Int32)

Ищет во входной строке первое вхождение регулярного выражения, начиная с указанной начальной позиции.Searches the input string for the first occurrence of a regular expression, beginning at the specified starting position in the string.

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

Строка для поиска соответствия.The string to search for a match.

startat
Int32

Отсчитываемая от нуля позиция символа, с которой начинается поиск.The zero-based character position at which to start the search.

Возвраты

Объект, содержащий сведения о совпадении.An object that contains information about the match.

Исключения

Свойство input имеет значение null.input is null.

Параметр startat имеет значение меньше нуля или больше длины input.startat is less than zero or greater than the length of input.

Время ожидания истекло.A time-out occurred. Дополнительные сведения о времени ожидания см. в разделе "Примечания".For more information about time-outs, see the Remarks section.

Комментарии

Метод возвращает первую подстроку, которая соответствует шаблону регулярного выражения, начиная с позиции символа во входной строке или после нее startat. Match(String, Int32)The Match(String, Int32) method returns the first substring that matches a regular expression pattern, starting at or after the startat character position, in an input string. Сведения об элементах языка, используемых для создания шаблона регулярного выражения, см. в разделе Язык регулярных выражений — краткий справочник.For information about the language elements used to build a regular expression pattern, see Regular Expression Language - Quick Reference.

Шаблон регулярного выражения, для которого Match(String, Int32) выполняется поиск метода, определяется вызовом одного Regex из конструкторов класса.The regular expression pattern for which the Match(String, Int32) method searches is defined by the call to one of the Regex class constructors. Дополнительные сведения об элементах, которые могут формировать шаблон регулярного выражения, см. в разделе Язык регулярных выражений — краткий справочник.For more information about the elements that can form a regular expression pattern, see Regular Expression Language - Quick Reference.

При необходимости можно указать начальную точку в строке с помощью startat параметра.You can optionally specify a starting position in the string by using the startat parameter. Когда обработчик регулярных выражений выполняет синтаксический анализ слева направо (по умолчанию), сопоставление и просмотр перемещаются правее, начиная с символа, startatуказанного в.When the regular expression engine parses from left to right (the default), the match and the scan move rightward, starting at the character specified in startat. Когда обработчик регулярных выражений выполняет синтаксический анализ справа налево (когда шаблон регулярного выражения создается с RegexOptions.RightToLeft параметром), сопоставление и сканирование перемещаются в обратном направлении и начинаются с startat символа, который начинается с 1.When the regular expression engine parses from right to left (when the regular expression pattern is constructed with the RegexOptions.RightToLeft option), the match and scan move in the opposite direction and begin with the character at startat -1. Если не указать начальную точку, поиск начинается с позиции по умолчанию startat .If you do not specify a starting position, the search begins at the default startat position. Если регулярное выражение выполняет поиск слева направо, то положением startat по умолчанию является левый inputконец; при поиске справа налево значение по умолчанию startat — справа input.If the regular expression searches from left to right, the default startat position is at the left end of input; if it searches from right to left, the default startat position is at the right end of input.

Если необходимо ограничить совпадение, чтобы оно начиналось с определенной позиции символа в строке, а обработчик регулярных выражений не проверит оставшуюся часть строки на соответствие, закрепите регулярное выражение с помощью \G (слева для слева направо). узор или справа для шаблона с письмом справа налево).If you want to restrict a match so that it begins at a particular character position in the string and the regular expression engine does not scan the remainder of the string for a match, anchor the regular expression with a \G (at the left for a left-to-right pattern, or at the right for a right-to-left pattern). Это ограничит соответствие, поэтому оно должно начинаться именно в startat.This restricts the match so it must start exactly at startat.

Можно определить, найден ли шаблон регулярного выражения во входной строке, проверив значение Match Success свойства возвращенного объекта.You can determine whether the regular expression pattern has been found in the input string by checking the value of the returned Match object's Success property. Если найдено совпадение, Match Value свойство возвращаемого объекта input содержит подстроку, соответствующую шаблону регулярного выражения.If a match is found, the returned Match object's Value property contains the substring from input that matches the regular expression pattern. Если совпадений не найдено, его значение равно String.Empty.If no match is found, its value is String.Empty.

Этот метод возвращает первую подстроку, найденную в или startat после позиции символа input в, совпадающей с шаблоном регулярного выражения.This method returns the first substring found at or after the startat character position in input that matches the regular expression pattern. Последующие совпадения можно получить, повторно вызвав Match Match.NextMatch метод возвращенного объекта.You can retrieve subsequent matches by repeatedly calling the returned Match object's Match.NextMatch method. Можно также получить все совпадения в одном вызове метода, вызвав Regex.Matches(String, Int32) метод.You can also retrieve all matches in a single method call by calling the Regex.Matches(String, Int32) method.

Исключение возникает, если время выполнения операции сопоставления превышает интервал времени ожидания, заданный Regex.Regex(String, RegexOptions, TimeSpan) конструктором. RegexMatchTimeoutExceptionThe RegexMatchTimeoutException exception is thrown if the execution time of the matching operation exceeds the time-out interval specified by the Regex.Regex(String, RegexOptions, TimeSpan) constructor. Если не задать интервал времени ожидания при вызове конструктора, исключение создается, если операция превышает любое значение времени ожидания, установленное для домена приложения, в котором Regex создан объект.If you do not set a time-out interval when you call the constructor, the exception is thrown if the operation exceeds any time-out value established for the application domain in which the Regex object is created. Если время ожидания не определено в Regex вызове конструктора или в свойствах домена приложения или если значение времени ожидания равно Regex.InfiniteMatchTimeout, исключение не создается.If no time-out is defined in the Regex constructor call or in the application domain's properties, or if the time-out value is Regex.InfiniteMatchTimeout, no exception is thrown.

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

Match(String)

Ищет в указанной входной строке первое вхождение регулярного выражения, указанного в конструкторе Regex.Searches the specified input string for the first occurrence of the regular expression specified in the Regex constructor.

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

Строка для поиска соответствия.The string to search for a match.

Возвраты

Объект, содержащий сведения о совпадении.An object that contains information about the match.

Исключения

inputnull.input is null.

Время ожидания истекло.A time-out occurred. Дополнительные сведения о времени ожидания см. в разделе "Примечания".For more information about time-outs, see the Remarks section.

Примеры

В следующем примере выполняется поиск совпадений шаблона регулярного выражения в строке, а затем выводятся соответствующие группы, записи и позиции записи.The following example finds regular expression pattern matches in a string, then lists the matched groups, captures, and capture positions.

#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) регулярного выражения сопоставляет вхождения слова «автомобиль» и предшествующее ему слово.The regular expression pattern (\w+)\s+(car) matches occurrences of the word "car" along with the word that precedes it. Он интерпретируется, как показано в следующей таблице.It is interpreted as shown in the following table.

ШаблонPattern ОписаниеDescription
(\w+) Совпадение с одним или несколькими символами слова.Match one or more word characters. Это первая группа записи.This is the first capturing group.
\s+ Совпадение с одним или несколькими символами пробела.Match one or more white-space characters.
автомобиле(car) Совпадение со строкой литерала "Car".Match the literal string "car". Это вторая группа записи.This is the second capturing group.

Комментарии

Match(String) Метод возвращает первую подстроку, которая соответствует шаблону регулярного выражения во входной строке.The Match(String) method returns the first substring that matches a regular expression pattern in an input string. Сведения об элементах языка, используемых для создания шаблона регулярного выражения, см. в разделе Язык регулярных выражений — краткий справочник.For information about the language elements used to build a regular expression pattern, see Regular Expression Language - Quick Reference.

Можно определить, найден ли шаблон регулярного выражения во входной строке, проверив значение Match Success свойства возвращенного объекта.You can determine whether the regular expression pattern has been found in the input string by checking the value of the returned Match object's Success property. Если найдено совпадение, Match Value свойство возвращаемого объекта input содержит подстроку, соответствующую шаблону регулярного выражения.If a match is found, the returned Match object's Value property contains the substring from input that matches the regular expression pattern. Если совпадений не найдено, его значение равно String.Empty.If no match is found, its value is String.Empty.

Этот метод возвращает первую подстроку в input , которая соответствует шаблону регулярного выражения.This method returns the first substring in input that matches the regular expression pattern. Последующие совпадения можно получить, повторно вызвав Match Match.NextMatch метод возвращенного объекта.You can retrieve subsequent matches by repeatedly calling the returned Match object's Match.NextMatch method. Можно также получить все совпадения в одном вызове метода, вызвав Regex.Matches(String) метод.You can also retrieve all matches in a single method call by calling the Regex.Matches(String) method.

Исключение возникает, если время выполнения операции сопоставления превышает интервал времени ожидания, заданный Regex.Regex(String, RegexOptions, TimeSpan) конструктором. RegexMatchTimeoutExceptionThe RegexMatchTimeoutException exception is thrown if the execution time of the matching operation exceeds the time-out interval specified by the Regex.Regex(String, RegexOptions, TimeSpan) constructor. Если не задать интервал времени ожидания при вызове конструктора, исключение создается, если операция превышает любое значение времени ожидания, установленное для домена приложения, в котором Regex создан объект.If you do not set a time-out interval when you call the constructor, the exception is thrown if the operation exceeds any time-out value established for the application domain in which the Regex object is created. Если время ожидания не определено в Regex вызове конструктора или в свойствах домена приложения или если значение времени ожидания равно Regex.InfiniteMatchTimeout, исключение не создается.If no time-out is defined in the Regex constructor call or in the application domain's properties, or if the time-out value is Regex.InfiniteMatchTimeout, no exception is thrown.

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

Match(String, String)

Ищет в указанной входной строке первое вхождение заданного регулярного выражения.Searches the specified input string for the first occurrence of the specified regular expression.

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

Строка для поиска соответствия.The string to search for a match.

pattern
String

Шаблон регулярного выражения для сопоставления.The regular expression pattern to match.

Возвраты

Объект, содержащий сведения о совпадении.An object that contains information about the match.

Исключения

Произошла ошибка анализа регулярного выражения.A regular expression parsing error occurred.

Значение параметра input или patternnull.input or pattern is null.

Время ожидания истекло.A time-out occurred. Дополнительные сведения о времени ожидания см. в разделе "Примечания".For more information about time-outs, see the Remarks section.

Примеры

В следующем примере Match(String, String) метод вызывается для поиска первого слова, содержащего хотя бы один z символ Match.NextMatch , а затем вызывает метод для поиска дополнительных совпадений.The following example calls the Match(String, String) method to find the first word that contains at least one z character, and then calls the Match.NextMatch method to find any additional matches.

using System;
using System.Text.RegularExpressions;

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 показаны в следующей таблице.The regular expression pattern \b\w*z+\w*\b is interpreted as shown in the following table.

ШаблонPattern ОписаниеDescription
\b Совпадение должно начинаться на границе слова.Begin the match at a word boundary.
\w* Совпадение с нулем, одним или несколькими символами слова.Match zero, one, or more word characters.
z+ Совпадение с z одним или несколькими вхождениями символа.Match one or more occurrences of the z character.
\w* Совпадение с нулем, одним или несколькими символами слова.Match zero, one, or more word characters.
\b Совпадение должно заканчиваться на границе слова.End the match at a word boundary.

Комментарии

Match(String, String) Метод возвращает первую подстроку, которая соответствует шаблону регулярного выражения во входной строке.The Match(String, String) method returns the first substring that matches a regular expression pattern in an input string. Сведения об элементах языка, используемых для создания шаблона регулярного выражения, см. в разделе Язык регулярных выражений — краткий справочник.For information about the language elements used to build a regular expression pattern, see Regular Expression Language - Quick Reference.

Статический Match(String, String) метод эквивалентен созданию Regex объекта с указанным шаблоном регулярного выражения и вызовом метода экземпляра Match(String) .The static Match(String, String) method is equivalent to constructing a Regex object with the specified regular expression pattern and calling the instance Match(String) method. В этом случае обработчик регулярных выражений кэширует шаблон регулярного выражения.In this case, the regular expression engine caches the regular expression pattern.

pattern Параметр состоит из элементов языка регулярных выражений, которые в символьном виде описывают строку для сопоставления.The pattern parameter consists of regular expression language elements that symbolically describe the string to match. Дополнительные сведения о регулярных выражениях см. в разделе .NET Framework регулярные выражения и Язык регулярных выражений — краткий справочник.For more information about regular expressions, see .NET Framework Regular Expressions and Regular Expression Language - Quick Reference.

Можно определить, найден ли шаблон регулярного выражения во входной строке, проверив значение Match Success свойства возвращенного объекта.You can determine whether the regular expression pattern has been found in the input string by checking the value of the returned Match object's Success property. Если найдено совпадение, Match Value свойство возвращаемого объекта input содержит подстроку, соответствующую шаблону регулярного выражения.If a match is found, the returned Match object's Value property contains the substring from input that matches the regular expression pattern. Если совпадений не найдено, его значение равно String.Empty.If no match is found, its value is String.Empty.

Этот метод возвращает первую подстроку в input , которая соответствует шаблону регулярного выражения.This method returns the first substring in input that matches the regular expression pattern. Последующие совпадения можно получить, повторно вызвав Match Match.NextMatch метод возвращенного объекта.You can retrieve subsequent matches by repeatedly calling the returned Match object's Match.NextMatch method. Можно также получить все совпадения в одном вызове метода, вызвав Regex.Matches(String, String) метод.You can also retrieve all matches in a single method call by calling the Regex.Matches(String, String) method.

RegexMatchTimeoutException Исключение возникает, если время выполнения операции сопоставления превышает интервал времени ожидания, указанный для домена приложения, в котором вызывается метод.The RegexMatchTimeoutException exception is thrown if the execution time of the matching operation exceeds the time-out interval specified for the application domain in which the method is called. Если время ожидания не определено в свойствах домена приложения или если значение времени ожидания равно Regex.InfiniteMatchTimeout, исключение не создается.If no time-out is defined in the application domain's properties, or if the time-out value is Regex.InfiniteMatchTimeout, no exception is thrown.

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

Время ожидания этого метода истекает после интервала, который равен значению времени ожидания по умолчанию для домена приложения, в котором он вызывается.This method times out after an interval that is equal to the default time-out value of the application domain in which it is called. Если для домена приложения не определено значение времени ожидания, то используется значение InfiniteMatchTimeout, запрещающее истечение времени ожидания метода.If a time-out value has not been defined for the application domain, the value InfiniteMatchTimeout, which prevents the method from timing out, is used. Для получения соответствия Match(String, String)шаблону рекомендуется использовать статический метод, который позволяет установить интервал времени ожидания.The recommended static method for retrieving a pattern match is Match(String, String), which lets you set the time-out interval.

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

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