Aracılığıyla paylaş


Regex Oluşturucular

Tanım

Regex sınıfının yeni bir örneğini başlatır.

Aşırı Yüklemeler

Regex()

Regex sınıfının yeni bir örneğini başlatır.

Regex(String)

Belirtilen normal ifade için Regex sınıfının yeni bir örneğini başlatır.

Regex(SerializationInfo, StreamingContext)
Geçersiz.

Serileştirilmiş verileri kullanarak Regex sınıfının yeni bir örneğini başlatır.

Regex(String, RegexOptions)

Deseni değiştiren seçeneklerle belirtilen normal ifade için Regex sınıfının yeni bir örneğini başlatır.

Regex(String, RegexOptions, TimeSpan)

Belirtilen normal ifade için Regex sınıfının yeni bir örneğini başlatır; deseni değiştiren seçenekler ve bir desen eşleştirme yönteminin zaman aşımına uğramadan önce ne kadar süreyle eşleşme denemesi gerektiğini belirten bir değer.

Regex()

Kaynak:
Regex.cs
Kaynak:
Regex.cs
Kaynak:
Regex.cs

Regex sınıfının yeni bir örneğini başlatır.

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

Açıklamalar

Bu oluşturucu korumalıdır; yalnızca Regex sınıfından türetilen sınıflar tarafından çağrılabilir.

Şunlara uygulanır

Regex(String)

Kaynak:
Regex.cs
Kaynak:
Regex.cs
Kaynak:
Regex.cs

Belirtilen normal ifade için Regex sınıfının yeni bir örneğini başlatır.

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)

Parametreler

pattern
String

Eşleşecek normal ifade deseni.

Özel durumlar

Normal ifade ayrıştırma hatası oluştu.

pattern null.

Örnekler

Aşağıdaki örnekte, "a" veya "t" harfleriyle başlayan herhangi bir sözcükle eşleşen normal bir ifadenin örneğini oluşturmak için bu oluşturucunun nasıl kullanılacağı gösterilmektedir.

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

Karşılaştırmalar varsayılan olarak büyük/küçük harfe duyarlı olduğundan, normal ifade deseninin metnin başındaki "The" sözcüğüyle eşleşmediğini unutmayın. Büyük/küçük harfe duyarsız karşılaştırma örneği için bkz. Regex(String, RegexOptions) oluşturucu.

Açıklamalar

Uyarı

Güvenilmeyen girişi işlemek için kullanırken, kötü amaçlı kullanıcılarınhizmet reddi saldırısına neden olmasını önlemek için bir zaman aşımı değeri geçirin. Zaman aşımı değeri, desen eşleştirme yönteminin zaman aşımına uğramadan önce eşleşmeyi ne kadar süreyle bulmaya çalışması gerektiğini belirtir.

pattern parametresi, eşleşecek dizeyi simgesel olarak tanımlayan normal ifade dili öğelerinden oluşur. Normal ifadeler hakkında daha fazla bilgi için.NET Normal İfadeler ve Normal İfade Dili - Hızlı Başvuru konularına bakın.

Regex(String) oluşturucunun çağrılması, options bağımsız değişkeni için None değeriyle Regex(String, RegexOptions) oluşturucuyu çağırmaya eşdeğerdir.

Regex nesnesi sabittir, yani yalnızca oluşturduğunuzda tanımladığınız eşleşme düzeni için kullanılabilir. Ancak, yeniden derlenmeden istediğiniz sayıda kullanılabilir.

Bu oluşturucu, patterniçinde tanımlanan alfabetik karakterlerin büyük/küçük harfe duyarlı eşleşmesini deneyen bir normal ifade nesnesinin örneğini oluşturur. Büyük/küçük harfe duyarlı olmayan bir eşleşme için Regex.Regex(String, RegexOptions) oluşturucuyu kullanın.

Arayanlara Notlar

Bu oluşturucu, oluşturulduğu uygulama etki alanının varsayılan zaman aşımı değerini kullanan bir Regex nesnesi oluşturur. Uygulama etki alanı için zaman aşımı değeri tanımlanmamışsa, Regex nesnesi InfiniteMatchTimeoutdeğerini kullanır ve bu da işlemin zaman aşımına girmesini önler. Regex nesnesi oluşturmak için önerilen oluşturucu, zaman aşımı aralığını ayarlamanıza olanak tanıyan Regex(String, RegexOptions, TimeSpan)' dir.

Ayrıca bkz.

Şunlara uygulanır

Regex(SerializationInfo, StreamingContext)

Kaynak:
Regex.cs
Kaynak:
Regex.cs
Kaynak:
Regex.cs

Dikkat

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

Serileştirilmiş verileri kullanarak Regex sınıfının yeni bir örneğini başlatır.

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)

Parametreler

info
SerializationInfo

Serileştirilmiş desen ve RegexOptions bilgileri içeren nesne.

context
StreamingContext

Bu serileştirmenin hedefi. (Bu parametre kullanılmaz; nullbelirtin.)

Öznitelikler

Özel durumlar

Normal ifade ayrıştırma hatası oluştu.

info içeren desen null.

info geçersiz bir RegexOptions bayrağı içeriyor.

Şunlara uygulanır

Regex(String, RegexOptions)

Kaynak:
Regex.cs
Kaynak:
Regex.cs
Kaynak:
Regex.cs

Deseni değiştiren seçeneklerle belirtilen normal ifade için Regex sınıfının yeni bir örneğini başlatır.

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)

Parametreler

pattern
String

Eşleşecek normal ifade deseni.

options
RegexOptions

Normal ifadeyi değiştiren numaralandırma değerlerinin bit düzeyinde birleşimi.

Özel durumlar

Normal ifade ayrıştırma hatası oluştu.

pattern null.

options geçersiz bir bayrak içeriyor.

Örnekler

Aşağıdaki örnekte, "a" veya "t" harfleriyle başlayan herhangi bir sözcükle eşleşen normal bir ifadenin örneğini oluşturmak için bu oluşturucunun nasıl kullanılacağı gösterilmektedir.

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

options parametresi büyük/küçük harfe duyarlı olmayan karşılaştırmalar tanımladığından, eşleştirme koleksiyonunun metni başlayan "The" sözcüğünü içerdiğini unutmayın.

Açıklamalar

Uyarı

Güvenilmeyen girişi işlemek için kullanırken, kötü amaçlı kullanıcılarınhizmet reddi saldırısına neden olmasını önlemek için bir zaman aşımı değeri geçirin. Zaman aşımı değeri, desen eşleştirme yönteminin zaman aşımına uğramadan önce eşleşmeyi ne kadar süreyle bulmaya çalışması gerektiğini belirtir.

pattern parametresi, eşleşecek dizeyi simgesel olarak tanımlayan normal ifade dili öğelerinden oluşur. Normal ifadeler hakkında daha fazla bilgi için.NET Normal İfadeler ve Normal İfade Dili - Hızlı Başvuru konularına bakın.

Regex nesnesi sabittir, yani yalnızca oluşturduğunuzda tanımladığınız eşleştirme parametreleri için kullanılabilir. Ancak, yeniden derlenmeden istediğiniz sayıda kullanılabilir.

Arayanlara Notlar

Bu oluşturucu, oluşturulduğu uygulama etki alanının varsayılan zaman aşımı değerini kullanan bir Regex nesnesi oluşturur. Uygulama etki alanı için zaman aşımı değeri tanımlanmamışsa, Regex nesnesi InfiniteMatchTimeoutdeğerini kullanır ve bu da işlemin zaman aşımına girmesini önler. Regex nesnesi oluşturmak için önerilen oluşturucu, zaman aşımı aralığını ayarlamanıza olanak tanıyan Regex(String, RegexOptions, TimeSpan)' dir.

Ayrıca bkz.

Şunlara uygulanır

Regex(String, RegexOptions, TimeSpan)

Kaynak:
Regex.cs
Kaynak:
Regex.cs
Kaynak:
Regex.cs

Belirtilen normal ifade için Regex sınıfının yeni bir örneğini başlatır; deseni değiştiren seçenekler ve bir desen eşleştirme yönteminin zaman aşımına uğramadan önce ne kadar süreyle eşleşme denemesi gerektiğini belirten bir değer.

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)

Parametreler

pattern
String

Eşleşecek normal ifade deseni.

options
RegexOptions

Normal ifadeyi değiştiren numaralandırma değerlerinin bit düzeyinde birleşimi.

matchTimeout
TimeSpan

Zaman aşımı aralığı veya yöntemin zaman aşımına neden olmaması gerektiğini belirtmek için InfiniteMatchTimeout.

Özel durumlar

Normal ifade ayrıştırma hatası oluştu.

pattern null.

options geçerli bir RegexOptions değeri değil.

-veya-

matchTimeout negatif, sıfır veya yaklaşık 24 günden uzundur.

Örnekler

Aşağıdaki örnek, bir saniyelik zaman aşımı değerine sahip bir Regex nesnesinin örneğini oluşturmak için Regex(String, RegexOptions, TimeSpan) oluşturucuyu çağırır. (a+)+$normal ifade deseni, satırın sonundaki bir veya daha fazla "a" karakteriyle eşleşen, aşırı geri dönüşe tabidir. Bir RegexMatchTimeoutException oluşturulursa, örnek zaman aşımı değerini en fazla üç saniyelik değere kadar artırır. Aksi takdirde, deseni eşleştirme girişimini bırakır.

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.

Açıklamalar

pattern parametresi, eşleşecek dizeyi simgesel olarak tanımlayan normal ifade dili öğelerinden oluşur. Normal ifadeler hakkında daha fazla bilgi için.NET Normal İfadeler ve Normal İfade Dili - Hızlı Başvuru konularına bakın.

Regex nesnesi sabittir; bu da yalnızca oluşturduğunuzda tanımladığınız eşleşme düzeni için kullanılabileceğini gösterir. Ancak, yeniden derlenmeden istediğiniz sayıda kullanılabilir.

matchTimeout parametresi, desen eşleştirme yönteminin zaman aşımına uğramadan önce eşleşmeyi ne kadar süreyle bulmaya çalışması gerektiğini belirtir. Bu zaman aralığında eşleşme bulunmazsa, desen eşleştirme yöntemi bir RegexMatchTimeoutException özel durumu oluşturur. matchTimeout, Regex nesnesinin oluşturulduğu uygulama etki alanı için tanımlanan varsayılan zaman aşımı değerlerini geçersiz kılar. matchTimeout zaman aşımı aralığını gözlemleyen örnek desen eşleştirme yöntemleri aşağıdakileri içerir:

Zaman aşımı aralığı ayarlamak, aşırı geri izleme kullanan normal ifadelerin, yakın eşleşmeler içeren girişleri işlerken yanıt vermeyi durdurmak için görünmesini engeller. Daha fazla bilgi için bkz. Normal İfadeler ve Geri İzlemeiçin En İyi Yöntemler. Makul bir zaman aşımı aralığı ayarlamak için aşağıdaki faktörleri göz önünde bulundurun:

  • Normal ifade deseninin uzunluğu ve karmaşıklığı. Daha uzun ve daha karmaşık normal ifadeler, daha kısa ve basit ifadelere göre daha fazla zaman gerektirir.

  • Beklenen makine yükü. İşleme, yüksek CPU ve bellek kullanımına sahip sistemlerde daha fazla zaman alır.

Arayanlara Notlar

matchTimeout parametresini iki saniye gibi uygun bir değere ayarlamanızı öneririz. InfiniteMatchTimeoutbelirterek zaman aşımlarını devre dışı bırakırsanız, normal ifade altyapısı biraz daha iyi performans sunar. Ancak, zaman aşımlarını yalnızca aşağıdaki koşullar altında devre dışı bırakmalısınız:

  • Normal bir ifade tarafından işlenen giriş bilinen ve güvenilen bir kaynaktan türetildiğinde veya statik metinden oluştuğunda. Bu, kullanıcılar tarafından dinamik olarak giriş yapılan metinleri dışlar.

  • Normal ifade deseni, eşleşmeleri, eşleşme olmayanları ve yakın eşleşmeleri verimli bir şekilde işlediğinden emin olmak için kapsamlı bir şekilde test edildiğinde.

  • Normal ifade deseni, yakın bir eşleşmeyi işlerken aşırı geri dönüşe neden olduğu bilinen bir dil öğesi içermediğinde.

Ayrıca bkz.

Şunlara uygulanır