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) выполняет поиск части, определенной параметрами beginning
input
и 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, подсистема регулярных выражений обеспечивает немного более высокую производительность. Однако отключать время ожидания следует только при следующих условиях:
Когда входные данные, обрабатываемые регулярным выражением, являются производными от известного и доверенного источника или состоят из статического текста. Это исключает текст, который был динамически введен пользователями.
Если шаблон регулярного выражения был тщательно протестирован, чтобы убедиться, что он эффективно обрабатывает совпадения, несоверчатые и близкие совпадения.
Если шаблон регулярного выражения не содержит языковых элементов, которые, как известно, приводят к чрезмерному возврату при обработке близкого совпадения.
См. также раздел
Применяется к
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по