Regex.MatchTimeout Regex.MatchTimeout Regex.MatchTimeout Regex.MatchTimeout Property

Definition

Ruft das Laufzeitintervall der aktuellen Instanz ab.Gets the time-out interval of the current instance.

public:
 property TimeSpan MatchTimeout { TimeSpan get(); };
public TimeSpan MatchTimeout { get; }
member this.MatchTimeout : TimeSpan
Public ReadOnly Property MatchTimeout As TimeSpan

Eigenschaftswert

Das maximale Zeitintervall, das in einem Mustervergleichsvorgang verstreichen kann, bevor eine RegexMatchTimeoutException-Ausnahme ausgelöst wird, oder InfiniteMatchTimeout, wenn Timeouts deaktiviert sind.The maximum time interval that can elapse in a pattern-matching operation before a RegexMatchTimeoutException is thrown, or InfiniteMatchTimeout if time-outs are disabled.

Hinweise

Die MatchTimeout -Eigenschaft definiert das ungefähre maximale Zeitintervall für Regex eine-Instanz, um einen einzelnen übereinstimmenden Vorgang vor dem Timeout des Vorgangs auszuführen. Die Engine für reguläre Ausdrücke löst RegexMatchTimeoutException während der nächsten zeitlichen Prüfung eine-Ausnahme aus, nachdem das Timeout Intervall abgelaufen ist.The MatchTimeout property defines the approximate maximum time interval for a Regex instance to execute a single matching operation before the operation times out. The regular expression engine throws a RegexMatchTimeoutException exception during its next timing check after the time-out interval has elapsed. Dadurch wird verhindert, dass die Engine für reguläre Ausdrücke Eingabe Zeichenfolgen verarbeitet, die übermäßige Rückverfolgung erfordern.This prevents the regular expression engine from processing input strings that require excessive backtracking. Weitere Informationen finden Sie unter Rückverfolgung und bewährte Methoden für reguläre Ausdrücke.For more information, see Backtracking and Best Practices for Regular Expressions.

Diese Eigenschaft ist schreibgeschützt.This property is read-only. Sie können den Wert für ein Regex einzelnes Objekt explizit festlegen, indem Sie den Regex.Regex(String, RegexOptions, TimeSpan) -Konstruktor aufrufen. Außerdem können Sie seinen Wert Regex für alle übereinstimmenden Vorgänge in einer Anwendungs AppDomain.SetData Domäne festlegen, indem Sie die-Methode aufrufen und eine TimeSpan der Wert für die Eigenschaft "REGEX_DEFAULT_MATCH_TIMEOUT", wie im folgenden Beispiel veranschaulicht.You can set its value explicitly for an individual Regex object by calling the Regex.Regex(String, RegexOptions, TimeSpan) constructor; and you can set its value for all Regex matching operations in an application domain by calling the AppDomain.SetData method and providing a TimeSpan value for the "REGEX_DEFAULT_MATCH_TIMEOUT" property, as the following example illustrates.

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
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim domain As AppDomain = AppDomain.CurrentDomain
      ' Set a timeout interval of 2 seconds.
      domain.SetData("REGEX_DEFAULT_MATCH_TIMEOUT", TimeSpan.FromSeconds(2))
      Dim timeout As Object = domain.GetData("REGEX_DEFAULT_MATCH_TIMEOUT")
      Console.WriteLine("Default regex match timeout: {0}",
                         If(timeout Is Nothing, "<null>", timeout))

      Dim rgx As New Regex("[aeiouy]")
      Console.WriteLine("Regular expression pattern: {0}", rgx.ToString())
      Console.WriteLine("Timeout interval for this regex: {0} seconds",
                        rgx.MatchTimeout.TotalSeconds)
   End Sub
End Module
' The example displays the following output:
'       Default regex match timeout: 00:00:02
'       Regular expression pattern: [aeiouy]
'       Timeout interval for this regex: 2 seconds

Wenn Sie ein Timeout Intervall nicht explizit festlegen, wird der Standardwert Regex.InfiniteMatchTimeout verwendet, und für übereinstimmende Vorgänge ist kein Timeout festgelegt.If you do not explicitly set a time-out interval, the default value Regex.InfiniteMatchTimeout is used, and matching operations do not time out.

Gilt für: