Regex.MatchTimeout Propiedad

Definición

Obtiene el intervalo de tiempo de espera de la instancia actual.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

Valor de propiedad

Intervalo de tiempo máximo que puede transcurrir en una operación de coincidencia de modelos antes de que se produzca una RegexMatchTimeoutException o InfiniteMatchTimeout si se deshabilitan los tiempos de espera.The maximum time interval that can elapse in a pattern-matching operation before a RegexMatchTimeoutException is thrown, or InfiniteMatchTimeout if time-outs are disabled.

Comentarios

La propiedad MatchTimeout define el intervalo de tiempo máximo aproximado para que una instancia de Regex ejecute una sola operación de coincidencia antes de que se agote el tiempo de espera de la operación. El motor de expresiones regulares produce una excepción RegexMatchTimeoutException durante la siguiente comprobación de tiempo después de que haya transcurrido el intervalo de tiempo de espera.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. Esto evita que el motor de expresiones regulares procese cadenas de entrada que requieran un retroceso excesivo.This prevents the regular expression engine from processing input strings that require excessive backtracking. Para obtener más información, vea retroceso y prácticas recomendadas para las expresiones regulares.For more information, see Backtracking and Best Practices for Regular Expressions.

Esta propiedad es de solo lectura.This property is read-only. Puede establecer su valor explícitamente para un objeto individual de Regex llamando al constructor Regex.Regex(String, RegexOptions, TimeSpan). y puede establecer su valor para todas las operaciones de coincidencia de Regex en un dominio de aplicación llamando al método AppDomain.SetData y proporcionando un valor de TimeSpan para la propiedad "REGEX_DEFAULT_MATCH_TIMEOUT", como se muestra en el ejemplo siguiente.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 no establece explícitamente un intervalo de tiempo de espera, se utiliza el valor predeterminado Regex.InfiniteMatchTimeout y las operaciones de búsqueda de coincidencias no agotan el tiempo de espera.If you do not explicitly set a time-out interval, the default value Regex.InfiniteMatchTimeout is used, and matching operations do not time out.

Se aplica a