Regex.Timeout / Таймаут исполнения регулярного выражения

В класс .NET 4.5 добавлена веселая возможность - указания таймаута исполнения регулярного выражения
Не думаю, что когда-либо воспользуюсь данной фичей, но ее однозначно стоит иметь ввиду

Пример использования:

using System;
using System.Reflection;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
        // Match two or more occurrences of the same character.
        string pattern = @"(\w)\1+";

        // Use case-insensitive matching. 
        var rci = new RegexCompilationInfo(pattern, RegexOptions.IgnoreCase,
                                           "DuplicateChars", "CustomRegexes", 
                                           true, TimeSpan.FromSeconds(2));

        // Define an assembly to contain the compiled regular expression.
        var an = new AssemblyName();
        an.Name = "RegexLib";
        RegexCompilationInfo[] rciList = { rci };

        // Compile the regular expression and create the assembly.
        Regex.CompileToAssembly(rciList, an);
   }
}


Пример взят со страницы http://msdn.microsoft.com/en-us/library/hh160232(VS.110).aspx

При превышении времени ожидания - бросается исключение RegexMatchTimeoutException

Список методов поддерживающих InfiniteMatchTimeout:

Комментариев нет:

Отправить комментарий

Можете оставить свой комментарий