Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

Regex.MatchTimeout propriété

.NET Framework (current version)
 

Date de publication : novembre 2016

Obtient l'intervalle du délai d'attente de l'instance actuelle.

Espace de noms:   System.Text.RegularExpressions
Assembly:  System (dans System.dll)

public TimeSpan MatchTimeout { get; }

Valeur de propriété

Type: System.TimeSpan

L’intervalle de temps maximale pouvant s’écouler dans une opération de correspondance avant une RegexMatchTimeoutException est levée, ou Regex.InfiniteMatchTimeout si les délais d’expiration sont désactivés.

Le MatchTimeout propriété définit l’intervalle maximum approximatif pour une Regex instance pour exécuter une seule opération de correspondance avant l’expiration de l’opération. Le moteur des expressions régulières lève une RegexMatchTimeoutException exception lors de la vérification de la synchronisation suivante après l’intervalle de délai d’attente est écoulé. Cela empêche le moteur des expressions régulières de traitement des chaînes d’entrée qui nécessitent une rétroaction excessive. Pour plus d’informations, consultez Rétroaction dans les expressions régulières et Meilleures pratiques des expressions régulières dans le .NET Framework.

Cette propriété est en lecture seule. Vous pouvez définir sa valeur explicitement une personne Regex en appelant le Regex.Regex(String, RegexOptions, TimeSpan) constructeur et vous pouvez définir sa valeur pour toutes les Regex correspondance des opérations dans un domaine d’application en appelant le AppDomain.SetData (méthode) et en fournissant un TimeSpan de valeur pour la propriété « REGEX_DEFAULT_MATCH_TIMEOUT », comme l’illustre l’exemple suivant.

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

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.

Plateforme Windows universelle
Disponible depuis 8
.NET Framework
Disponible depuis 4.5
Bibliothèque de classes portable
Pris en charge dans : plateformes .NET portables
Silverlight pour Windows Phone
Disponible depuis 8.0
Windows Phone
Disponible depuis 8.1
Retour au début
Afficher: