Regex.MatchTimeout Özellik

Tanım

Geçerli örneğin zaman aşımı aralığını alır.

C#
public TimeSpan MatchTimeout { get; }

Özellik Değeri

Bir oluşturmadan önce RegexMatchTimeoutException desen eşleştirme işleminde geçen veya InfiniteMatchTimeout zaman aşımları devre dışı bırakıldığında en uzun zaman aralığı.

Açıklamalar

özelliği, MatchTimeout bir Regex örneğin işlem zaman aşımına uğramadan önce tek bir eşleştirme işlemi yürütmesi için yaklaşık maksimum zaman aralığını tanımlar. Normal ifade altyapısı, zaman aşımı aralığı geçtikten sonra sonraki zamanlama denetimi sırasında bir RegexMatchTimeoutException özel durum oluşturur. Bu, normal ifade altyapısının aşırı geri izleme gerektiren giriş dizelerini işlemesini engeller. Daha fazla bilgi için bkz. Normal İfadeler içinGeri İzleme ve En İyi Yöntemler.

Bu özellik salt okunur durumdadır. Oluşturucuyu çağırarak tek Regex bir nesne için değerini açıkça ayarlayabilirsiniz; yöntemini çağırarak AppDomain.SetData ve aşağıdaki örnekte gösterildiği gibi "REGEX_DEFAULT_MATCH_TIMEOUT" özelliği için bir TimeSpan değer sağlayarak bir uygulama etki alanındaki tüm Regex eşleşen işlemler için değerini ayarlayabilirsinizRegex.Regex(String, RegexOptions, TimeSpan).

C#
using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      AppDomain domain = AppDomain.CurrentDomain;
      // Set a timeout interval of 2 seconds.
      domain.SetData("REGEX_DEFAULT_MATCH_TIMEOUT", TimeSpan.FromSeconds(2));
      Object timeout = domain.GetData("REGEX_DEFAULT_MATCH_TIMEOUT");
      Console.WriteLine("Default regex match timeout: {0}",
                         timeout == null ? "<null>" : timeout);

      Regex rgx = new Regex("[aeiouy]");
      Console.WriteLine("Regular expression pattern: {0}", rgx.ToString());
      Console.WriteLine("Timeout interval for this regex: {0} seconds",
                        rgx.MatchTimeout.TotalSeconds);
   }
}
// The example displays the following output:
//       Default regex match timeout: 00:00:02
//       Regular expression pattern: [aeiouy]
//       Timeout interval for this regex: 2 seconds

Zaman aşımı aralığını açıkça ayarlamazsanız, varsayılan değer Regex.InfiniteMatchTimeout kullanılır ve eşleşen işlemler zaman aşımına ulanmaz.

Şunlara uygulanır

Ürün Sürümler
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0