Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Regex.MatchTimeout-Eigenschaft

.NET Framework (current version)
 

Veröffentlicht: Oktober 2016

Ruft das Laufzeitintervall der aktuellen Instanz ab.

Namespace:   System.Text.RegularExpressions
Assembly:  System (in System.dll)

public TimeSpan MatchTimeout { get; }

Eigenschaftswert

Type: System.TimeSpan

Das maximale Zeitintervall, das in einem Mustervergleichsvorgang verstreichen kann, bevor eine RegexMatchTimeoutException-Ausnahme ausgelöst wird, oder Regex.InfiniteMatchTimeout, wenn Timeouts deaktiviert sind.

Die MatchTimeout Eigenschaft definiert die ungefähre maximale Zeitintervall für eine Regex -Instanz, die eine einzelne entsprechende Operation ausgeführt wird, vor dem Timeout des Vorgangs. Das Modul für reguläre Ausdrücke löst eine RegexMatchTimeoutException Ausnahme während der nächsten Überprüfung der zeitlichen Steuerung nach Ablauf des Timeoutintervalls. Dadurch wird verhindert, dass das Modul für reguläre Ausdrücke verarbeiten von Zeichenfolgen, die übermäßig erfordern. Weitere Informationen finden Sie unter Backtracking in regulären Ausdrücken und Empfohlene Vorgehensweisen für die Verwendung von regulären Ausdrücken in .NET Framework.

Diese Eigenschaft ist schreibgeschützt. Können legen Sie den Wert explizit für ein einzelnes Regex -Objekt durch Aufrufen der Regex.Regex(String, RegexOptions, TimeSpan) Konstruktor, und Sie können den Wert festlegen, für alle Regex Abgleichen von Vorgängen in einer Anwendungsdomäne durch Aufrufen der AppDomain.SetData Methode und ein TimeSpan Wert für die Eigenschaft "REGEX_DEFAULT_MATCH_TIMEOUT", wie im folgenden Beispiel veranschaulicht.

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

Wenn Sie ein Timeoutintervall, der Standardwert nicht explizit festgelegt Regex.InfiniteMatchTimeout wird verwendet, und die entsprechenden Vorgänge werden nicht automatisch gelöscht.

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 4.5
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Windows Phone Silverlight
Verfügbar seit 8.0
Windows Phone
Verfügbar seit 8.1
Zurück zum Anfang
Anzeigen: