Freigeben über


Regex Konstruktoren

Definition

Initialisiert eine neue Instanz der Regex Klasse.

Überlädt

Regex()

Initialisiert eine neue Instanz der Regex Klasse.

Regex(String)

Initialisiert eine neue Instanz der Regex Klasse für den angegebenen regulären Ausdruck.

Regex(SerializationInfo, StreamingContext)
Veraltet.

Initialisiert eine neue Instanz der Regex Klasse mithilfe serialisierter Daten.

Regex(String, RegexOptions)

Initialisiert eine neue Instanz der Regex Klasse für den angegebenen regulären Ausdruck mit Optionen, die das Muster ändern.

Regex(String, RegexOptions, TimeSpan)

Initialisiert eine neue Instanz der Regex-Klasse für den angegebenen regulären Ausdruck mit Optionen, mit denen das Muster geändert wird, und ein Wert, der angibt, wie lange eine Musterabgleichsmethode eine Übereinstimmung versuchen soll, bevor ein Zeitüberschreitung erfolgt.

Regex()

Quelle:
Regex.cs
Quelle:
Regex.cs
Quelle:
Regex.cs

Initialisiert eine neue Instanz der Regex Klasse.

protected:
 Regex();
protected Regex ();
Protected Sub New ()

Hinweise

Beachten Sie, dass dieser Konstruktor geschützt ist; sie kann nur von Klassen aufgerufen werden, die von der Regex Klasse abgeleitet werden.

Gilt für:

Regex(String)

Quelle:
Regex.cs
Quelle:
Regex.cs
Quelle:
Regex.cs

Initialisiert eine neue Instanz der Regex Klasse für den angegebenen regulären Ausdruck.

public:
 Regex(System::String ^ pattern);
public Regex (string pattern);
new System.Text.RegularExpressions.Regex : string -> System.Text.RegularExpressions.Regex
Public Sub New (pattern As String)

Parameter

pattern
String

Das muster des regulären Ausdrucks, das übereinstimmen soll.

Ausnahmen

Es ist ein Fehler beim Analysieren regulärer Ausdrücke aufgetreten.

pattern ist null.

Beispiele

Im folgenden Beispiel wird veranschaulicht, wie Sie diesen Konstruktor verwenden, um einen regulären Ausdruck zu instanziieren, der mit jedem Wort übereinstimmt, das mit den Buchstaben "a" oder "t" beginnt.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string pattern = @"\b[at]\w+";
      string text = "The threaded application ate up the thread pool as it executed.";
      MatchCollection matches;

      Regex defaultRegex = new Regex(pattern);
      // Get matches of pattern in text
      matches = defaultRegex.Matches(text);
      Console.WriteLine("Parsing '{0}'", text);
      // Iterate matches
      for (int ctr = 0; ctr < matches.Count; ctr++)
         Console.WriteLine("{0}. {1}", ctr, matches[ctr].Value);
   }
}
// The example displays the following output:
//       Parsing 'The threaded application ate up the thread pool as it executed.'
//       0. threaded
//       1. application
//       2. ate
//       3. the
//       4. thread
//       5. as
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim pattern As String = "\b[at]\w+"
      Dim text As String = "The threaded application ate up the thread pool as it executed."
      Dim matches As MatchCollection

      Dim defaultRegex As New Regex(pattern)
      ' Get matches of pattern in text
      matches = defaultRegex.Matches(text)
      Console.WriteLine("Parsing '{0}'", text)
      ' Iterate matches
      For ctr As Integer = 0 to matches.Count - 1
         Console.WriteLine("{0}. {1}", ctr, matches(ctr).Value)
      Next
   End Sub
End Module
' The example displays the following output:
'       Parsing 'The threaded application ate up the thread pool as it executed.'
'       0. threaded
'       1. application
'       2. ate
'       3. the
'       4. thread
'       5. as

Beachten Sie, dass das Muster für reguläre Ausdrücke nicht mit dem Wort "The" am Anfang des Texts übereinstimmt, da bei Vergleichen standardmäßig die Groß-/Kleinschreibung beachtet wird. Ein Beispiel für einen Vergleich zwischen Groß- und Kleinschreibung finden Sie im Regex(String, RegexOptions)-Konstruktor.

Hinweise

Warnung

Wenn Sie System.Text.RegularExpressions verwenden, um nicht vertrauenswürdige Eingaben zu verarbeiten, übergeben Sie einen Timeoutwert, um zu verhindern, dass böswillige Benutzer einen Denial-of-Service-Angriffverursachen. Ein Timeoutwert gibt an, wie lange eine Musterabgleichsmethode versuchen soll, eine Übereinstimmung zu finden, bevor ein Timeout ausgeht.

Der pattern-Parameter besteht aus Sprachelementen für reguläre Ausdrücke, die die zu übereinstimmende Zeichenfolge symbolisch beschreiben. Weitere Informationen zu regulären Ausdrücken finden Sie in den themen .NET Regular Expressions und Regular Expression Language – Kurzübersicht Themen.

Das Aufrufen des Regex(String)-Konstruktors entspricht dem Aufrufen des Regex(String, RegexOptions)-Konstruktors mit dem Wert None für das Argument options.

Ein Regex-Objekt ist unveränderlich, was bedeutet, dass es nur für das Muster verwendet werden kann, das Sie beim Erstellen definieren. Es kann jedoch beliebig oft verwendet werden, ohne neu kompiliert zu werden.

Dieser Konstruktor instanziiert ein reguläres Ausdrucksobjekt, das eine Groß-/Kleinschreibung einer Übereinstimmung mit alphabetischen Zeichen versucht, die in patterndefiniert sind. Verwenden Sie für eine Übereinstimmung zwischen Groß- und Kleinschreibung den Regex.Regex(String, RegexOptions)-Konstruktor.

Hinweise für Aufrufer

Dieser Konstruktor erstellt ein Regex-Objekt, das den Standardtimeoutwert der Anwendungsdomäne verwendet, in der sie erstellt wird. Wenn kein Timeoutwert für die Anwendungsdomäne definiert wurde, verwendet das Regex-Objekt den Wert InfiniteMatchTimeout, wodurch verhindert wird, dass der Vorgang einen Timeout abhält. Der empfohlene Konstruktor zum Erstellen eines Regex-Objekts ist Regex(String, RegexOptions, TimeSpan), mit dem Sie das Timeoutintervall festlegen können.

Weitere Informationen

Gilt für:

Regex(SerializationInfo, StreamingContext)

Quelle:
Regex.cs
Quelle:
Regex.cs
Quelle:
Regex.cs

Achtung

This API supports obsolete formatter-based serialization. It should not be called or extended by application code.

Initialisiert eine neue Instanz der Regex Klasse mithilfe serialisierter Daten.

protected:
 Regex(System::Runtime::Serialization::SerializationInfo ^ info, System::Runtime::Serialization::StreamingContext context);
protected Regex (System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context);
[System.Obsolete("This API supports obsolete formatter-based serialization. It should not be called or extended by application code.", DiagnosticId="SYSLIB0051", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
protected Regex (System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context);
new System.Text.RegularExpressions.Regex : System.Runtime.Serialization.SerializationInfo * System.Runtime.Serialization.StreamingContext -> System.Text.RegularExpressions.Regex
[<System.Obsolete("This API supports obsolete formatter-based serialization. It should not be called or extended by application code.", DiagnosticId="SYSLIB0051", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
new System.Text.RegularExpressions.Regex : System.Runtime.Serialization.SerializationInfo * System.Runtime.Serialization.StreamingContext -> System.Text.RegularExpressions.Regex
Protected Sub New (info As SerializationInfo, context As StreamingContext)

Parameter

info
SerializationInfo

Das Objekt, das ein serialisiertes Muster und RegexOptions Informationen enthält.

context
StreamingContext

Das Ziel für diese Serialisierung. (Dieser Parameter wird nicht verwendet; geben Sie nullan.)

Attribute

Ausnahmen

Es ist ein Fehler beim Analysieren regulärer Ausdrücke aufgetreten.

Das muster, das info enthält, ist null.

info enthält ein ungültiges RegexOptions Flag.

Gilt für:

Regex(String, RegexOptions)

Quelle:
Regex.cs
Quelle:
Regex.cs
Quelle:
Regex.cs

Initialisiert eine neue Instanz der Regex Klasse für den angegebenen regulären Ausdruck mit Optionen, die das Muster ändern.

public:
 Regex(System::String ^ pattern, System::Text::RegularExpressions::RegexOptions options);
public Regex (string pattern, System.Text.RegularExpressions.RegexOptions options);
new System.Text.RegularExpressions.Regex : string * System.Text.RegularExpressions.RegexOptions -> System.Text.RegularExpressions.Regex
Public Sub New (pattern As String, options As RegexOptions)

Parameter

pattern
String

Das muster des regulären Ausdrucks, das übereinstimmen soll.

options
RegexOptions

Eine bitweise Kombination der Enumerationswerte, die den regulären Ausdruck ändern.

Ausnahmen

Es ist ein Fehler beim Analysieren regulärer Ausdrücke aufgetreten.

pattern ist null.

options enthält ein ungültiges Kennzeichen.

Beispiele

Im folgenden Beispiel wird veranschaulicht, wie Sie diesen Konstruktor verwenden, um einen regulären Ausdruck zu instanziieren, der mit jedem Wort übereinstimmt, das mit den Buchstaben "a" oder "t" beginnt.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string pattern = @"\b[at]\w+";
      RegexOptions options = RegexOptions.IgnoreCase | RegexOptions.Compiled;
      string text = "The threaded application ate up the thread pool as it executed.";
      MatchCollection matches;

      Regex optionRegex = new Regex(pattern, options);
      Console.WriteLine("Parsing '{0}' with options {1}:", text, options.ToString());
      // Get matches of pattern in text
      matches = optionRegex.Matches(text);
      // Iterate matches
      for (int ctr = 0; ctr < matches.Count; ctr++)
         Console.WriteLine("{0}. {1}", ctr, matches[ctr].Value);
   }
}
// The example displays the following output:
//    Parsing 'The threaded application ate up the thread pool as it executed.'
//        with options IgnoreCase, Compiled:
//    0. The
//    1. threaded
//    2. application
//    3. ate
//    4. the
//    5. thread
//    6. as
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim pattern As String = "\b[at]\w+"
      Dim options As RegexOptions = RegexOptions.IgnoreCase Or RegexOptions.Compiled
      Dim text As String = "The threaded application ate up the thread pool as it executed."
      Dim matches As MatchCollection

      Dim optionRegex As New Regex(pattern, options)
      Console.WriteLine("Parsing '{0}' with options {1}:", text, options.ToString())
      ' Get matches of pattern in text
      matches = optionRegex.Matches(text)
      ' Iterate matches   
      For ctr As Integer = 0 to matches.Count - 1
         Console.WriteLine("{0}. {1}", ctr, matches(ctr).Value)
      Next
   End Sub
End Module
' The example displays the following output:
'    Parsing 'The threaded application ate up the thread pool as it executed.'
'       with options IgnoreCase, Compiled:
'    0. The
'    1. threaded
'    2. application
'    3. ate
'    4. the
'    5. thread
'    6. as

Beachten Sie, dass die Übereinstimmungsauflistung das Wort "The" enthält, das den Text beginnt, da für den parameter options vergleicht die Groß-/Kleinschreibung definiert wurde.

Hinweise

Warnung

Wenn Sie System.Text.RegularExpressions verwenden, um nicht vertrauenswürdige Eingaben zu verarbeiten, übergeben Sie einen Timeoutwert, um zu verhindern, dass böswillige Benutzer einen Denial-of-Service-Angriffverursachen. Ein Timeoutwert gibt an, wie lange eine Musterabgleichsmethode versuchen soll, eine Übereinstimmung zu finden, bevor ein Timeout ausgeht.

Der pattern-Parameter besteht aus Sprachelementen für reguläre Ausdrücke, die die zu übereinstimmende Zeichenfolge symbolisch beschreiben. Weitere Informationen zu regulären Ausdrücken finden Sie in den themen .NET Regular Expressions und Regular Expression Language – Kurzübersicht Themen.

Ein Regex-Objekt ist unveränderlich, was bedeutet, dass es nur für die Übereinstimmungsparameter verwendet werden kann, die Sie beim Erstellen definieren. Es kann jedoch beliebig oft verwendet werden, ohne neu kompiliert zu werden.

Hinweise für Aufrufer

Dieser Konstruktor erstellt ein Regex-Objekt, das den Standardtimeoutwert der Anwendungsdomäne verwendet, in der sie erstellt wird. Wenn kein Timeoutwert für die Anwendungsdomäne definiert wurde, verwendet das Regex-Objekt den Wert InfiniteMatchTimeout, wodurch verhindert wird, dass der Vorgang einen Timeout abhält. Der empfohlene Konstruktor zum Erstellen eines Regex-Objekts ist Regex(String, RegexOptions, TimeSpan), mit dem Sie das Timeoutintervall festlegen können.

Weitere Informationen

Gilt für:

Regex(String, RegexOptions, TimeSpan)

Quelle:
Regex.cs
Quelle:
Regex.cs
Quelle:
Regex.cs

Initialisiert eine neue Instanz der Regex-Klasse für den angegebenen regulären Ausdruck mit Optionen, mit denen das Muster geändert wird, und ein Wert, der angibt, wie lange eine Musterabgleichsmethode eine Übereinstimmung versuchen soll, bevor ein Zeitüberschreitung erfolgt.

public:
 Regex(System::String ^ pattern, System::Text::RegularExpressions::RegexOptions options, TimeSpan matchTimeout);
public Regex (string pattern, System.Text.RegularExpressions.RegexOptions options, TimeSpan matchTimeout);
new System.Text.RegularExpressions.Regex : string * System.Text.RegularExpressions.RegexOptions * TimeSpan -> System.Text.RegularExpressions.Regex
Public Sub New (pattern As String, options As RegexOptions, matchTimeout As TimeSpan)

Parameter

pattern
String

Das muster des regulären Ausdrucks, das übereinstimmen soll.

options
RegexOptions

Eine bitweise Kombination der Enumerationswerte, die den regulären Ausdruck ändern.

matchTimeout
TimeSpan

Ein Timeoutintervall oder InfiniteMatchTimeout, um anzugeben, dass die Methode kein Timeout hat.

Ausnahmen

Es ist ein Fehler beim Analysieren regulärer Ausdrücke aufgetreten.

pattern ist null.

options ist kein gültiger RegexOptions Wert.

-oder-

matchTimeout ist negativ, null oder größer als etwa 24 Tage.

Beispiele

Im folgenden Beispiel wird der Regex(String, RegexOptions, TimeSpan)-Konstruktor aufgerufen, um ein Regex-Objekt mit einem Timeoutwert von einer Sekunde zu instanziieren. Das Muster des regulären Ausdrucks (a+)+$, das mindestens einer Sequenz eines oder mehrerer "a"-Zeichen am Ende einer Zeile entspricht, unterliegt übermäßigem Rücktracking. Wenn ein RegexMatchTimeoutException ausgelöst wird, erhöht das Beispiel den Timeoutwert auf den Maximalwert von drei Sekunden. Andernfalls wird der Versuch abgebrochen, dem Muster zu entsprechen.

using System;
using System.ComponentModel;
using System.Diagnostics;
using System.Security;
using System.Text.RegularExpressions;
using System.Threading; 

public class Example
{
   const int MaxTimeoutInSeconds = 3;

   public static void Main()
   {
      string pattern = @"(a+)+$";    // DO NOT REUSE THIS PATTERN.
      Regex rgx = new Regex(pattern, RegexOptions.IgnoreCase, TimeSpan.FromSeconds(1));       
      Stopwatch sw = null;
      
      string[] inputs= { "aa", "aaaa>", 
                         "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
                         "aaaaaaaaaaaaaaaaaaaaaa>",
                         "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa>" };
                                 
      foreach (var inputValue in inputs) {
         Console.WriteLine("Processing {0}", inputValue);
         bool timedOut = false;
         do { 
            try {
               sw = Stopwatch.StartNew();
               // Display the result.
               if (rgx.IsMatch(inputValue)) {
                  sw.Stop();
                  Console.WriteLine(@"Valid: '{0}' ({1:ss\.fffffff} seconds)", 
                                    inputValue, sw.Elapsed); 
               }
               else {
                  sw.Stop();
                  Console.WriteLine(@"'{0}' is not a valid string. ({1:ss\.fffff} seconds)", 
                                    inputValue, sw.Elapsed);
               }
            }
            catch (RegexMatchTimeoutException e) {   
               sw.Stop();
               // Display the elapsed time until the exception.
               Console.WriteLine(@"Timeout with '{0}' after {1:ss\.fffff}", 
                                 inputValue, sw.Elapsed);
               Thread.Sleep(1500);       // Pause for 1.5 seconds.

               // Increase the timeout interval and retry.
               TimeSpan timeout = e.MatchTimeout.Add(TimeSpan.FromSeconds(1));
               if (timeout.TotalSeconds > MaxTimeoutInSeconds) {
                  Console.WriteLine("Maximum timeout interval of {0} seconds exceeded.",
                                    MaxTimeoutInSeconds);
                  timedOut = false;
               }
               else {               
                  Console.WriteLine("Changing the timeout interval to {0}", 
                                    timeout); 
                  rgx = new Regex(pattern, RegexOptions.IgnoreCase, timeout);
                  timedOut = true;
               }
            }
         } while (timedOut);
         Console.WriteLine();
      }   
   }
}
// The example displays output like the following :
//    Processing aa
//    Valid: 'aa' (00.0000779 seconds)
//    
//    Processing aaaa>
//    'aaaa>' is not a valid string. (00.00005 seconds)
//    
//    Processing aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
//    Valid: 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' (00.0000043 seconds)
//    
//    Processing aaaaaaaaaaaaaaaaaaaaaa>
//    Timeout with 'aaaaaaaaaaaaaaaaaaaaaa>' after 01.00469
//    Changing the timeout interval to 00:00:02
//    Timeout with 'aaaaaaaaaaaaaaaaaaaaaa>' after 02.01202
//    Changing the timeout interval to 00:00:03
//    Timeout with 'aaaaaaaaaaaaaaaaaaaaaa>' after 03.01043
//    Maximum timeout interval of 3 seconds exceeded.
//    
//    Processing aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa>
//    Timeout with 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa>' after 03.01018
//    Maximum timeout interval of 3 seconds exceeded.
Imports System.ComponentModel
Imports System.Diagnostics
Imports System.Security
Imports System.Text.RegularExpressions
Imports System.Threading 

Module Example
   Const MaxTimeoutInSeconds As Integer = 3
   
   Public Sub Main()
      Dim pattern As String = "(a+)+$"    ' DO NOT REUSE THIS PATTERN.
      Dim rgx As New Regex(pattern, RegexOptions.IgnoreCase, TimeSpan.FromSeconds(1))       
      Dim sw As Stopwatch = Nothing
      
      Dim inputs() As String = { "aa", "aaaa>", 
                                 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
                                 "aaaaaaaaaaaaaaaaaaaaaa>",
                                 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa>" }
                                 
      For Each inputValue In inputs
         Console.WriteLine("Processing {0}", inputValue)
         Dim timedOut As Boolean = False
         Do 
            Try
               sw = Stopwatch.StartNew()
               ' Display the result.
               If rgx.IsMatch(inputValue) Then
                  sw.Stop()
                  Console.WriteLine("Valid: '{0}' ({1:ss\.fffffff} seconds)", 
                                    inputValue, sw.Elapsed) 
               Else
                  sw.Stop()
                  Console.WriteLine("'{0}' is not a valid string. ({1:ss\.fffff} seconds)", 
                                    inputValue, sw.Elapsed)
               End If
            Catch e As RegexMatchTimeoutException   
               sw.Stop()
               ' Display the elapsed time until the exception.
               Console.WriteLine("Timeout with '{0}' after {1:ss\.fffff}", 
                                 inputValue, sw.Elapsed)
               Thread.Sleep(1500)       ' Pause for 1.5 seconds.

               ' Increase the timeout interval and retry.
               Dim timeout As TimeSpan = e.MatchTimeout.Add(TimeSpan.FromSeconds(1))
               If timeout.TotalSeconds > MaxTimeoutInSeconds Then
                  Console.WriteLine("Maximum timeout interval of {0} seconds exceeded.",
                                    MaxTimeoutInSeconds)
                  timedOut = False
               Else                
                  Console.WriteLine("Changing the timeout interval to {0}", 
                                    timeout) 
                  rgx = New Regex(pattern, RegexOptions.IgnoreCase, timeout)
                  timedOut = True
               End If
            End Try
         Loop While timedOut
         Console.WriteLine()
      Next   
   End Sub 
End Module
' The example displays output like the following:
'    Processing aa
'    Valid: 'aa' (00.0000779 seconds)
'    
'    Processing aaaa>
'    'aaaa>' is not a valid string. (00.00005 seconds)
'    
'    Processing aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
'    Valid: 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' (00.0000043 seconds)
'    
'    Processing aaaaaaaaaaaaaaaaaaaaaa>
'    Timeout with 'aaaaaaaaaaaaaaaaaaaaaa>' after 01.00469
'    Changing the timeout interval to 00:00:02
'    Timeout with 'aaaaaaaaaaaaaaaaaaaaaa>' after 02.01202
'    Changing the timeout interval to 00:00:03
'    Timeout with 'aaaaaaaaaaaaaaaaaaaaaa>' after 03.01043
'    Maximum timeout interval of 3 seconds exceeded.
'    
'    Processing aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa>
'    Timeout with 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa>' after 03.01018
'    Maximum timeout interval of 3 seconds exceeded.

Hinweise

Der pattern-Parameter besteht aus Sprachelementen für reguläre Ausdrücke, die die zu übereinstimmende Zeichenfolge symbolisch beschreiben. Weitere Informationen zu regulären Ausdrücken finden Sie in den themen .NET Regular Expressions und Regular Expression Language – Kurzübersicht Themen.

Ein Regex-Objekt ist unveränderlich. Dies bedeutet, dass es nur für das Übereinstimmungsmuster verwendet werden kann, das Sie beim Erstellen definieren. Es kann jedoch beliebig oft verwendet werden, ohne neu kompiliert zu werden.

Der parameter matchTimeout gibt an, wie lange eine Musterabgleichsmethode versucht, eine Übereinstimmung zu finden, bevor ein Zeitüberschreitung erfolgt. Wenn in diesem Zeitintervall keine Übereinstimmung gefunden wird, löst die Musterabgleichsmethode eine RegexMatchTimeoutException Ausnahme aus. matchTimeout überschreibt jeden Standardtimeoutwert, der für die Anwendungsdomäne definiert ist, in der das Regex-Objekt erstellt wird. Die Methoden für den Instanzmusterabgleich, die das matchTimeout Timeoutintervall beobachten, umfassen Folgendes:

Das Festlegen eines Timeoutintervalls verhindert, dass reguläre Ausdrücke, die auf übermäßigem Rückverfolgungsvorgang basieren, nicht mehr reagieren, wenn sie Eingaben verarbeiten, die nahezu Übereinstimmungen enthalten. Weitere Informationen finden Sie unter Bewährte Methoden für reguläre Ausdrücke und Backtracking-. Um ein angemessenes Timeoutintervall festzulegen, berücksichtigen Sie die folgenden Faktoren:

  • Die Länge und Komplexität des Musters für reguläre Ausdrücke. Längere und komplexere reguläre Ausdrücke erfordern mehr Zeit als kürzere und einfachere Ausdrücke.

  • Die erwartete Computerlast. Die Verarbeitung benötigt mehr Zeit für Systeme mit hoher CPU- und Arbeitsspeicherauslastung.

Hinweise für Aufrufer

Es wird empfohlen, den parameter matchTimeout auf einen geeigneten Wert festzulegen, z. B. zwei Sekunden. Wenn Sie Timeouts deaktivieren, indem Sie InfiniteMatchTimeoutangeben, bietet das Modul für reguläre Ausdrücke etwas bessere Leistung. Sie sollten Timeouts jedoch nur unter den folgenden Bedingungen deaktivieren:

  • Wenn die von einem regulären Ausdruck verarbeitete Eingabe von einer bekannten und vertrauenswürdigen Quelle abgeleitet wird oder aus statischem Text besteht. Dadurch wird Text ausgeschlossen, der dynamisch von Benutzern eingegeben wurde.

  • Wenn das Muster für reguläre Ausdrücke gründlich getestet wurde, um sicherzustellen, dass es Übereinstimmungen, Nicht-Übereinstimmungen und nahe Übereinstimmungen effizient verarbeitet.

  • Wenn das Muster für reguläre Ausdrücke keine Sprachelemente enthält, die bekanntermaßen zu übermäßigem Rückverfolgungsverhalten bei der Verarbeitung einer Nahübereinstimmung führen.

Weitere Informationen

Gilt für: