Свойство MatchTimeout
Значение MatchTimeout задают в
конструкторе Regex
третьим параметром TimeSpan.
По умолчанию лимита нет -
Timeout.InfiniteTimeSpan. Свойство
только для чтения. Флаги шаблона хранятся
в Options.
Синтаксис
var regex = new Regex(pattern, options, matchTimeout);
TimeSpan limit = regex.MatchTimeout;
Пример
Давайте зададим лимит в 2 секунды
и прочитаем свойство:
using System;
using System.Text.RegularExpressions;
class Program
{
static void Main()
{
var regex = new Regex(@"abc", RegexOptions.None, TimeSpan.FromSeconds(2));
Console.WriteLine(regex.MatchTimeout.TotalSeconds);
}
}
Результат выполнения кода:
2
Пример
Давайте создадим Regex с бесконечным
таймаутом:
using System;
using System.Text.RegularExpressions;
class Program
{
static void Main()
{
var regex = new Regex(@"abc", RegexOptions.None, Timeout.InfiniteTimeSpan);
bool res = regex.MatchTimeout == Timeout.InfiniteTimeSpan;
Console.WriteLine(res);
}
}
Результат выполнения кода:
True
Пример
Давайте выполним поиск в пределах заданного таймаута:
using System;
using System.Text.RegularExpressions;
class Program
{
static void Main()
{
var regex = new Regex(@"bcd", RegexOptions.None, TimeSpan.FromSeconds(1));
bool res = regex.IsMatch("abcde");
Console.WriteLine(res);
}
}
Результат выполнения кода:
True
Смотрите также
-
свойство
Options,
которое хранит флаги шаблона -
Regex,
класс, где задаютMatchTimeout -
RegexOptions,
которые передают в конструктор -
RegexParseException,
которое связано с ошибкой шаблона