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

Définition

Obtient l'intervalle du délai d'attente de l'instance actuelle.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

Valeur de propriété

L’intervalle de temps maximale qui peut s’écouler dans une opération de correspondance avant un RegexMatchTimeoutException est levée, ou InfiniteMatchTimeout si les délais d’expiration sont désactivés.The maximum time interval that can elapse in a pattern-matching operation before a RegexMatchTimeoutException is thrown, or InfiniteMatchTimeout if time-outs are disabled.

Remarques

Le MatchTimeout propriété définit l’intervalle de temps maximale approximative un Regex instance pour exécuter une seule opération de correspondance avant l’expiration de l’opération. Le moteur d’expression régulière lève un RegexMatchTimeoutException exception lors de sa prochaine vérification de minutage après l’intervalle de délai d’expiration est écoulé.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. Cela empêche le moteur d’expression régulière de traiter des chaînes d’entrée qui nécessitent une rétroaction excessive.This prevents the regular expression engine from processing input strings that require excessive backtracking. Pour plus d’informations, consultez rétroaction et meilleures pratiques pour les Expressions régulières.For more information, see Backtracking and Best Practices for Regular Expressions.

Cette propriété est en lecture seule.This property is read-only. Vous pouvez définir explicitement sa valeur pour une personne Regex objet en appelant le Regex.Regex(String, RegexOptions, TimeSpan) constructeur ; et vous pouvez définir sa valeur pour tous les Regex correspondance des opérations dans un domaine d’application en appelant le AppDomain.SetData (méthode) et en fournissant un TimeSpan valeur pour la propriété « REGEX_DEFAULT_MATCH_TIMEOUT », comme l’illustre l’exemple suivant.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

Si vous ne définissez pas explicitement un intervalle de délai d’attente, la valeur par défaut Regex.InfiniteMatchTimeout est utilisées et de correspondance des opérations n’expirent pas.If you do not explicitly set a time-out interval, the default value Regex.InfiniteMatchTimeout is used, and matching operations do not time out.

S’applique à