Aracılığıyla paylaş


Regex.Match Yöntem

Tanım

Normal ifade deseni ile eşleşen bir alt dize için giriş dizesini arar ve ilk oluşumu tek bir Match nesnesi olarak döndürür.

Aşırı Yüklemeler

Match(String)

Regex oluşturucusunda belirtilen normal ifadenin ilk oluşumu için belirtilen giriş dizesini arar.

Match(String, Int32)

Giriş dizesinde, dizede belirtilen başlangıç konumundan başlayarak normal ifadenin ilk geçtiği yeri arar.

Match(String, String)

Belirtilen normal ifadenin ilk oluşumu için belirtilen giriş dizesini arar.

Match(String, Int32, Int32)

Belirtilen başlangıç konumundan başlayıp yalnızca belirtilen karakter sayısını arayarak, normal ifadenin ilk oluşumu için giriş dizesini arar.

Match(String, String, RegexOptions)

Belirtilen eşleştirme seçeneklerini kullanarak belirtilen normal ifadenin ilk geçtiği giriş dizesini arar.

Match(String, String, RegexOptions, TimeSpan)

Belirtilen eşleşen seçenekleri ve zaman aşımı aralığını kullanarak, belirtilen normal ifadenin ilk oluşumu için giriş dizesini arar.

Match(String)

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

Regex oluşturucusunda belirtilen normal ifadenin ilk oluşumu için belirtilen giriş dizesini arar.

public:
 System::Text::RegularExpressions::Match ^ Match(System::String ^ input);
public System.Text.RegularExpressions.Match Match (string input);
member this.Match : string -> System.Text.RegularExpressions.Match
Public Function Match (input As String) As Match

Parametreler

input
String

Eşleşme aranacak dize.

Döndürülenler

Eşleşme hakkında bilgi içeren bir nesne.

Özel durumlar

input null.

Zaman aşımı oluştu. Zaman aşımları hakkında daha fazla bilgi için Açıklamalar bölümüne bakın.

Örnekler

Aşağıdaki örnek bir dizedeki normal ifade deseni eşleşmelerini bulur, ardından eşleşen grupları, yakalamaları ve yakalama konumlarını listeler.

#using <System.dll>

using namespace System;
using namespace System::Text::RegularExpressions;
void main()
{
   
   String^ text = "One car red car blue car";
   String^ pat = "(\\w+)\\s+(car)";
   
   // Compile the regular expression.
   Regex^ r = gcnew Regex( pat,RegexOptions::IgnoreCase );
   
   // Match the regular expression pattern against a text string.
   Match^ m = r->Match(text);
   int matchCount = 0;
   while ( m->Success )
   {
      Console::WriteLine( "Match{0}", ++matchCount );
      for ( int i = 1; i <= 2; i++ )
      {
         Group^ g = m->Groups[ i ];
         Console::WriteLine( "Group{0}='{1}'", i, g );
         CaptureCollection^ cc = g->Captures;
         for ( int j = 0; j < cc->Count; j++ )
         {
            Capture^ c = cc[ j ];
            System::Console::WriteLine( "Capture{0}='{1}', Position={2}", j, c, c->Index );
         }
      }
      m = m->NextMatch();
   }
}  
// This example displays the following output:
//       Match1
//       Group1='One'
//       Capture0='One', Position=0
//       Group2='car'
//       Capture0='car', Position=4
//       Match2
//       Group1='red'
//       Capture0='red', Position=8
//       Group2='car'
//       Capture0='car', Position=12
//       Match3
//       Group1='blue'
//       Capture0='blue', Position=16
//       Group2='car'
//       Capture0='car', Position=21
using System;
using System.Text.RegularExpressions;

class Example
{
   static void Main()
   {
      string text = "One car red car blue car";
      string pat = @"(\w+)\s+(car)";

      // Instantiate the regular expression object.
      Regex r = new Regex(pat, RegexOptions.IgnoreCase);

      // Match the regular expression pattern against a text string.
      Match m = r.Match(text);
      int matchCount = 0;
      while (m.Success)
      {
         Console.WriteLine("Match"+ (++matchCount));
         for (int i = 1; i <= 2; i++)
         {
            Group g = m.Groups[i];
            Console.WriteLine("Group"+i+"='" + g + "'");
            CaptureCollection cc = g.Captures;
            for (int j = 0; j < cc.Count; j++)
            {
               Capture c = cc[j];
               System.Console.WriteLine("Capture"+j+"='" + c + "', Position="+c.Index);
            }
         }
         m = m.NextMatch();
      }
   }
}
// This example displays the following output:
//       Match1
//       Group1='One'
//       Capture0='One', Position=0
//       Group2='car'
//       Capture0='car', Position=4
//       Match2
//       Group1='red'
//       Capture0='red', Position=8
//       Group2='car'
//       Capture0='car', Position=12
//       Match3
//       Group1='blue'
//       Capture0='blue', Position=16
//       Group2='car'
//       Capture0='car', Position=21
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim text As String = "One car red car blue car"
      Dim pattern As String = "(\w+)\s+(car)"

      ' Instantiate the regular expression object.
      Dim r As Regex = new Regex(pattern, RegexOptions.IgnoreCase)

      ' Match the regular expression pattern against a text string.
      Dim m As Match = r.Match(text)
      Dim matchcount as Integer = 0
      Do While m.Success
         matchCount += 1
         Console.WriteLine("Match" & (matchCount))
         Dim i As Integer
         For i = 1 to 2
            Dim g as Group = m.Groups(i)
            Console.WriteLine("Group" & i & "='" & g.ToString() & "'")
            Dim cc As CaptureCollection = g.Captures
            Dim j As Integer 
            For j = 0 to cc.Count - 1
              Dim c As Capture = cc(j)
               Console.WriteLine("Capture" & j & "='" & c.ToString() _
                  & "', Position=" & c.Index)
            Next 
         Next 
         m = m.NextMatch()
      Loop
   End Sub
End Module
' This example displays the following output:
'       Match1
'       Group1='One'
'       Capture0='One', Position=0
'       Group2='car'
'       Capture0='car', Position=4
'       Match2
'       Group1='red'
'       Capture0='red', Position=8
'       Group2='car'
'       Capture0='car', Position=12
'       Match3
'       Group1='blue'
'       Capture0='blue', Position=16
'       Group2='car'
'       Capture0='car', Position=21

(\w+)\s+(car) normal ifade deseni, "araba" sözcüğünün oluşumlarıyla kendisinden önceki sözcükle eşleşir. Aşağıdaki tabloda gösterildiği gibi yorumlanır.

Desen Açıklama
(\w+) Bir veya daha fazla sözcük karakterini eşleştirin. Bu, ilk yakalama grubudur.
\s+ Bir veya daha fazla boşluk karakteri eşleştirin.
(araba) "car" değişmez dizesini eşleştirin. Bu ikinci yakalama grubudur.

Açıklamalar

Match(String) yöntemi, giriş dizesindeki normal ifade deseni ile eşleşen ilk alt dizeyi döndürür. Normal ifade deseni oluşturmak için kullanılan dil öğeleri hakkında bilgi için bkz. Normal İfade Dili - Hızlı Başvuru.

Döndürülen Match nesnesinin Success özelliğinin değerini denetleyerek giriş dizesinde normal ifade deseninin bulunup bulunmadığını belirleyebilirsiniz. Eşleşme bulunursa, döndürülen Match nesnesinin Value özelliği, normal ifade deseni ile eşleşen input alt dizesini içerir. Eşleşme bulunmazsa değeri String.Emptyolur.

Bu yöntem, input normal ifade deseni ile eşleşen ilk alt dizeyi döndürür. Döndürülen Match nesnesinin Match.NextMatch yöntemini tekrar tekrar çağırarak sonraki eşleşmeleri alabilirsiniz. ayrıca Regex.Matches(String) yöntemini çağırarak tek bir yöntem çağrısında tüm eşleşmeleri alabilirsiniz.

Eşleşen işlemin yürütme süresi Regex.Regex(String, RegexOptions, TimeSpan) oluşturucu tarafından belirtilen zaman aşımı aralığını aşarsa RegexMatchTimeoutException özel durumu oluşturulur. Oluşturucuyu çağırdığınızda zaman aşımı aralığı ayarlamazsanız, işlem Regex nesnesinin oluşturulduğu uygulama etki alanı için belirlenen zaman aşımı değerini aşarsa özel durum oluşturulur. Regex oluşturucu çağrısında veya uygulama etki alanının özelliklerinde zaman aşımı tanımlanmadıysa veya zaman aşımı değeri Regex.InfiniteMatchTimeoutise, özel durum oluşturmaz.

Ayrıca bkz.

Şunlara uygulanır

Match(String, Int32)

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

Giriş dizesinde, dizede belirtilen başlangıç konumundan başlayarak normal ifadenin ilk geçtiği yeri arar.

public:
 System::Text::RegularExpressions::Match ^ Match(System::String ^ input, int startat);
public System.Text.RegularExpressions.Match Match (string input, int startat);
member this.Match : string * int -> System.Text.RegularExpressions.Match
Public Function Match (input As String, startat As Integer) As Match

Parametreler

input
String

Eşleşme aranacak dize.

startat
Int32

Aramanın başlatıldığı sıfır tabanlı karakter konumu.

Döndürülenler

Eşleşme hakkında bilgi içeren bir nesne.

Özel durumlar

input null.

startat sıfırdan küçük veya inputuzunluğundan büyük.

Zaman aşımı oluştu. Zaman aşımları hakkında daha fazla bilgi için Açıklamalar bölümüne bakın.

Açıklamalar

Bu API hakkında daha fazla bilgi için bkz. Regex.Matchiçin ek API açıklamaları .

Ayrıca bkz.

Şunlara uygulanır

Match(String, String)

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

Belirtilen normal ifadenin ilk oluşumu için belirtilen giriş dizesini arar.

public:
 static System::Text::RegularExpressions::Match ^ Match(System::String ^ input, System::String ^ pattern);
public static System.Text.RegularExpressions.Match Match (string input, string pattern);
static member Match : string * string -> System.Text.RegularExpressions.Match
Public Shared Function Match (input As String, pattern As String) As Match

Parametreler

input
String

Eşleşme aranacak dize.

pattern
String

Eşleşecek normal ifade deseni.

Döndürülenler

Eşleşme hakkında bilgi içeren bir nesne.

Özel durumlar

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

input veya patternnull.

Zaman aşımı oluştu. Zaman aşımları hakkında daha fazla bilgi için Açıklamalar bölümüne bakın.

Örnekler

Aşağıdaki örnek, en az bir z karakteri içeren ilk sözcüğü bulmak için Match(String, String) yöntemini çağırır ve ardından ek eşleşmeleri bulmak için Match.NextMatch yöntemini çağırır.

using System;
using System.Text.RegularExpressions;

namespace Examples
{
    public class Example
    {
        public static void Main()
        {
            string input = "ablaze beagle choral dozen elementary fanatic " +
                           "glaze hunger inept jazz kitchen lemon minus " +
                           "night optical pizza quiz restoration stamina " +
                           "train unrest vertical whiz xray yellow zealous";
            string pattern = @"\b\w*z+\w*\b";
            Match m = Regex.Match(input, pattern);
            while (m.Success)
            {
                Console.WriteLine("'{0}' found at position {1}", m.Value, m.Index);
                m = m.NextMatch();
            }
        }
    }
}

// The example displays the following output:
//    'ablaze' found at position 0
//    'dozen' found at position 21
//    'glaze' found at position 46
//    'jazz' found at position 65
//    'pizza' found at position 104
//    'quiz' found at position 110
//    'whiz' found at position 157
//    'zealous' found at position 174
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim input As String = "ablaze beagle choral dozen elementary fanatic " +
                            "glaze hunger inept jazz kitchen lemon minus " +
                            "night optical pizza quiz restoration stamina " +
                            "train unrest vertical whiz xray yellow zealous"
      Dim pattern As String = "\b\w*z+\w*\b"
      Dim m As Match = Regex.Match(input, pattern)
      Do While m.Success 
         Console.WriteLine("'{0}' found at position {1}", m.Value, m.Index)
         m = m.NextMatch()
      Loop                      
   End Sub
End Module
' The example displays the following output:
    'ablaze' found at position 0
    'dozen' found at position 21
    'glaze' found at position 46
    'jazz' found at position 65
    'pizza' found at position 104
    'quiz' found at position 110
    'whiz' found at position 157
    'zealous' found at position 174

Normal ifade deseni \b\w*z+\w*\b aşağıdaki tabloda gösterildiği gibi yorumlanır.

Desen Açıklama
\b Eşleşmeye bir sözcük sınırından başlayın.
\w* Sıfır, bir veya daha fazla sözcük karakteri eşleştirin.
z+ z karakterinin bir veya daha fazla yinelemesini eşleştirin.
\w* Sıfır, bir veya daha fazla sözcük karakteri eşleştirin.
\b Eşleşmeyi bir sözcük sınırında sonlandırın.

Açıklamalar

Match(String, String) yöntemi, giriş dizesindeki normal ifade deseni ile eşleşen ilk alt dizeyi döndürür. Normal ifade deseni oluşturmak için kullanılan dil öğeleri hakkında bilgi için bkz. Normal İfade Dili - Hızlı Başvuru.

Statik Match(String, String) yöntemi, belirtilen normal ifade desenine sahip bir Regex nesnesi oluşturmak ve örneği Match(String) yöntemi çağırmaya eşdeğerdir. Bu durumda, normal ifade altyapısı normal ifade desenini önbelleğe alır.

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 bkz. .NET Normal İfadeleri ve Normal İfade Dili - Hızlı Başvuru.

Döndürülen Match nesnesinin Success özelliğinin değerini denetleyerek giriş dizesinde normal ifade deseninin bulunup bulunmadığını belirleyebilirsiniz. Eşleşme bulunursa, döndürülen Match nesnesinin Value özelliği, normal ifade deseni ile eşleşen input alt dizesini içerir. Eşleşme bulunmazsa değeri String.Emptyolur.

Bu yöntem, input normal ifade deseni ile eşleşen ilk alt dizeyi döndürür. Döndürülen Match nesnesinin Match.NextMatch yöntemini tekrar tekrar çağırarak sonraki eşleşmeleri alabilirsiniz. ayrıca Regex.Matches(String, String) yöntemini çağırarak tek bir yöntem çağrısında tüm eşleşmeleri alabilirsiniz.

Eşleşen işlemin yürütme süresi yöntemin çağrıldığı uygulama etki alanı için belirtilen zaman aşımı aralığını aşarsa RegexMatchTimeoutException özel durumu oluşturulur. Uygulama etki alanının özelliklerinde zaman aşımı tanımlanmamışsa veya zaman aşımı değeri Regex.InfiniteMatchTimeoutise özel durum oluşturmaz.

Arayanlara Notlar

Bu yöntem, çağrıldığı uygulama etki alanının varsayılan zaman aşımı değerine eşit bir aralıktan sonra zaman aşımına uğradı. Uygulama etki alanı için zaman aşımı değeri tanımlanmamışsa, yönteminin zaman aşımına girmesini engelleyen InfiniteMatchTimeoutdeğeri kullanılır. Desen eşleşmesi almak için önerilen statik yöntem Match(String, String), zaman aşımı aralığını ayarlamanıza olanak tanır.

Ayrıca bkz.

Şunlara uygulanır

Match(String, Int32, Int32)

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

Belirtilen başlangıç konumundan başlayıp yalnızca belirtilen karakter sayısını arayarak, normal ifadenin ilk oluşumu için giriş dizesini arar.

public:
 System::Text::RegularExpressions::Match ^ Match(System::String ^ input, int beginning, int length);
public System.Text.RegularExpressions.Match Match (string input, int beginning, int length);
member this.Match : string * int * int -> System.Text.RegularExpressions.Match
Public Function Match (input As String, beginning As Integer, length As Integer) As Match

Parametreler

input
String

Eşleşme aranacak dize.

beginning
Int32

Giriş dizesinde, aranacak en soldaki konumu tanımlayan sıfır tabanlı karakter konumu.

length
Int32

Alt dizedeki aramada yer alacak karakter sayısı.

Döndürülenler

Eşleşme hakkında bilgi içeren bir nesne.

Özel durumlar

input null.

beginning sıfırdan küçük veya inputuzunluğundan büyük.

-veya-

length sıfırdan küçük veya inputuzunluğundan büyük.

-veya-

beginning + length -1, inputaralığının dışında bir konum tanımlar.

Zaman aşımı oluştu. Zaman aşımları hakkında daha fazla bilgi için Açıklamalar bölümüne bakın.

Açıklamalar

Match(String, Int32, Int32) yöntemi, giriş dizesinin bir bölümündeki normal ifade deseni ile eşleşen ilk alt dizeyi döndürür. Normal ifade deseni oluşturmak için kullanılan dil öğeleri hakkında bilgi için bkz. Normal İfade Dili - Hızlı Başvuru.

Match(String, Int32, Int32) yöntemi aramalarının Regex sınıf oluşturucularından birine yapılan çağrıyla tanımlandığı normal ifade deseni. Normal ifade deseni oluşturabilen öğeler hakkında daha fazla bilgi için bkz. Normal İfade Dili - Hızlı Başvuru.

Match(String, Int32, Int32) yöntemi, normal ifade deseni için beginning ve length parametreleri tarafından tanımlanan input bölümünü arar. beginning her zaman aramaya eklenecek en soldaki karakterin dizinini tanımlar ve length aranacak en fazla karakter sayısını tanımlar. Birlikte arama aralığını tanımlarlar. Davranış, input etkin bir şekilde input.Substring(beginning, length)gibidir, ancak herhangi bir eşleşmenin dizini inputbaşlangıcına göre sayılır. Başka bir deyişle, desenin başındaki veya sonundaki tüm tutturucular veya sıfır genişlikli onaylar, bu aralığın dışında input yokmuş gibi davranır. Örneğin , \Gve \A^tutturucular beginning ve $ ile \zbeginning + length - 1'de karşılanır.

Arama soldan sağa (varsayılan) devam ederse, normal ifade altyapısı dizin beginning karakterinden beginning + length - 1dizinindeki karaktere kadar arar. Aramanın sağdan sola ilerlemesi için normal ifade altyapısının örneği RegexOptions.RightToLeft seçeneği kullanılarak oluşturulduysa, normal ifade altyapısı dizindeki karakterden dizin beginning + length - 1beginningdizinindeki karaktere kadar arar.

Bu yöntem, bu aralık içinde bulduğu ilk eşleşmeyi döndürür. Döndürülen Match nesnesinin Match.NextMatch yöntemini tekrar tekrar çağırarak sonraki eşleşmeleri alabilirsiniz.

Döndürülen Match nesnesinin Success özelliğinin değerini denetleyerek giriş dizesinde normal ifade deseninin bulunup bulunmadığını belirleyebilirsiniz. Eşleşme bulunursa, döndürülen Match nesnesinin Value özelliği, normal ifade deseni ile eşleşen input alt dizesini içerir. Eşleşme bulunmazsa değeri String.Emptyolur.

Eşleşen işlemin yürütme süresi Regex.Regex(String, RegexOptions, TimeSpan) oluşturucu tarafından belirtilen zaman aşımı aralığını aşarsa RegexMatchTimeoutException özel durumu oluşturulur. Oluşturucuyu çağırdığınızda zaman aşımı değeri ayarlamazsanız, işlem Regex nesnesinin oluşturulduğu uygulama etki alanı için oluşturulan zaman aşımı değerini aşarsa özel durum oluşturulur. Regex oluşturucu çağrısında veya uygulama etki alanının özelliklerinde zaman aşımı tanımlanmadıysa veya zaman aşımı değeri Regex.InfiniteMatchTimeoutise, özel durum oluşturmaz.

Ayrıca bkz.

Şunlara uygulanır

Match(String, String, RegexOptions)

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

Belirtilen eşleştirme seçeneklerini kullanarak belirtilen normal ifadenin ilk geçtiği giriş dizesini arar.

public:
 static System::Text::RegularExpressions::Match ^ Match(System::String ^ input, System::String ^ pattern, System::Text::RegularExpressions::RegexOptions options);
public static System.Text.RegularExpressions.Match Match (string input, string pattern, System.Text.RegularExpressions.RegexOptions options);
static member Match : string * string * System.Text.RegularExpressions.RegexOptions -> System.Text.RegularExpressions.Match
Public Shared Function Match (input As String, pattern As String, options As RegexOptions) As Match

Parametreler

input
String

Eşleşme aranacak dize.

pattern
String

Eşleşecek normal ifade deseni.

options
RegexOptions

Eşleştirme seçenekleri sağlayan numaralandırma değerlerinin bit düzeyinde birleşimi.

Döndürülenler

Eşleşme hakkında bilgi içeren bir nesne.

Özel durumlar

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

input veya patternnull.

options, RegexOptions değerlerin bit düzeyinde geçerli bir bileşimi değildir.

Zaman aşımı oluştu. Zaman aşımları hakkında daha fazla bilgi için Açıklamalar bölümüne bakın.

Örnekler

Aşağıdaki örnek, "a" harfiyle başlayan sözcüklerle eşleşen normal bir ifade tanımlar. Normal ifadenin hem büyük "a" hem de küçük harf "a" ile başlayan sözcükleri bulmasını sağlamak için RegexOptions.IgnoreCase seçeneğini kullanır.

using System;
using System.Text.RegularExpressions;

namespace Examples
{
    public class Example2
    {
        public static void Main()
        {
            string pattern = @"\ba\w*\b";
            string input = "An extraordinary day dawns with each new day.";
            Match m = Regex.Match(input, pattern, RegexOptions.IgnoreCase);
            if (m.Success)
                Console.WriteLine("Found '{0}' at position {1}.", m.Value, m.Index);
        }
    }
}

// The example displays the following output:
//        Found 'An' at position 0.
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim pattern As String = "\ba\w*\b"
      Dim input As String = "An extraordinary day dawns with each new day."
      Dim m As Match = Regex.Match(input, pattern, RegexOptions.IgnoreCase)
      If m.Success Then
         Console.WriteLine("Found '{0}' at position {1}.", m.Value, m.Index)
      End If
   End Sub
End Module
' The example displays the following output:
'       Found 'An' at position 0.

Normal ifade deseni \ba\w*\b aşağıdaki tabloda gösterildiği gibi yorumlanır.

Desen Açıklama
\b Eşleşmeye bir sözcük sınırından başlayın.
a "a" karakterini eşleştirin.
\w* Sıfır, bir veya daha fazla sözcük karakteri eşleştirin.
\b Eşleşmeyi bir sözcük sınırında sonlandırın.

Açıklamalar

Match(String, String, RegexOptions) yöntemi, giriş dizesindeki normal ifade deseni ile eşleşen ilk alt dizeyi döndürür. Normal ifade deseni oluşturmak için kullanılan dil öğeleri hakkında bilgi için bkz. Normal İfade Dili - Hızlı Başvuru.

Statik Match(String, String, RegexOptions) yöntemi, Regex(String, RegexOptions) oluşturucu ile bir Regex nesnesi oluşturmak ve örnek Match(String) yöntemini çağırmakla eşdeğerdir.

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 bkz. .NET Normal İfadeleri ve Normal İfade Dili - Hızlı Başvuru.

Döndürülen Match nesnesinin Success özelliğinin değerini denetleyerek giriş dizesinde normal ifade deseninin bulunup bulunmadığını belirleyebilirsiniz. Eşleşme bulunursa, döndürülen Match nesnesinin Value özelliği, normal ifade deseni ile eşleşen input alt dizesini içerir. Eşleşme bulunmazsa değeri String.Emptyolur.

Bu yöntem, normal ifade deseni ile eşleşen input bulunan ilk alt dizeyi döndürür. Döndürülen Match nesnesinin NextMatch yöntemini tekrar tekrar çağırarak sonraki eşleşmeleri alabilirsiniz. ayrıca Regex.Matches(String, String, RegexOptions) yöntemini çağırarak tek bir yöntem çağrısında tüm eşleşmeleri alabilirsiniz.

Eşleşen işlemin yürütme süresi yöntemin çağrıldığı uygulama etki alanı için belirtilen zaman aşımı aralığını aşarsa RegexMatchTimeoutException özel durumu oluşturulur. Uygulama etki alanının özelliklerinde zaman aşımı tanımlanmamışsa veya zaman aşımı değeri Regex.InfiniteMatchTimeoutise özel durum oluşturmaz.

Arayanlara Notlar

Bu yöntem, çağrıldığı uygulama etki alanının varsayılan zaman aşımı değerine eşit bir aralıktan sonra zaman aşımına uğradı. Uygulama etki alanı için zaman aşımı değeri tanımlanmamışsa, yönteminin zaman aşımına girmesini engelleyen InfiniteMatchTimeoutdeğeri kullanılır. Desen eşleşmesi almak için önerilen statik yöntem Match(String, String), zaman aşımı aralığını ayarlamanıza olanak tanır.

Ayrıca bkz.

Şunlara uygulanır

Match(String, String, RegexOptions, TimeSpan)

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

Belirtilen eşleşen seçenekleri ve zaman aşımı aralığını kullanarak, belirtilen normal ifadenin ilk oluşumu için giriş dizesini arar.

public:
 static System::Text::RegularExpressions::Match ^ Match(System::String ^ input, System::String ^ pattern, System::Text::RegularExpressions::RegexOptions options, TimeSpan matchTimeout);
public static System.Text.RegularExpressions.Match Match (string input, string pattern, System.Text.RegularExpressions.RegexOptions options, TimeSpan matchTimeout);
static member Match : string * string * System.Text.RegularExpressions.RegexOptions * TimeSpan -> System.Text.RegularExpressions.Match
Public Shared Function Match (input As String, pattern As String, options As RegexOptions, matchTimeout As TimeSpan) As Match

Parametreler

input
String

Eşleşme aranacak dize.

pattern
String

Eşleşecek normal ifade deseni.

options
RegexOptions

Eşleştirme seçenekleri sağlayan 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.

Döndürülenler

Eşleşme hakkında bilgi içeren bir nesne.

Özel durumlar

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

input veya patternnull.

options, RegexOptions değerlerin bit düzeyinde geçerli bir bileşimi değildir.

-veya-

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

Zaman aşımı oluştu. Zaman aşımları hakkında daha fazla bilgi için Açıklamalar bölümüne bakın.

Açıklamalar

Match(String, String, RegexOptions, TimeSpan) yöntemi, giriş dizesindeki normal ifade deseni ile eşleşen ilk alt dizeyi döndürür. Normal ifade deseni oluşturmak için kullanılan dil öğeleri hakkında bilgi için bkz. Normal İfade Dili - Hızlı Başvuru.

Statik Match(String, String, RegexOptions, TimeSpan) yöntemi, Regex(String, RegexOptions, TimeSpan) oluşturucu ile bir Regex nesnesi oluşturmak ve örnek Match(String) yöntemini çağırmakla eşdeğerdir.

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 bkz. .NET Normal İfadeleri ve Normal İfade Dili - Hızlı Başvuru.

Döndürülen Match nesnesinin Success özelliğinin değerini denetleyerek giriş dizesinde normal ifade deseninin bulunup bulunmadığını belirleyebilirsiniz. Eşleşme bulunursa, döndürülen Match nesnesinin Value özelliği, normal ifade deseni ile eşleşen input alt dizesini içerir. Eşleşme bulunmazsa değeri String.Emptyolur.

Bu yöntem, normal ifade deseni ile eşleşen input bulunan ilk alt dizeyi döndürür. Döndürülen Match nesnesinin NextMatch yöntemini tekrar tekrar çağırarak sonraki eşleşmeleri alabilirsiniz. ayrıca Regex.Matches(String, String, RegexOptions) yöntemini çağırarak tek bir yöntem çağrısında tüm eşleşmeleri alabilirsiniz.

matchTimeout parametresi, bir 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. 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. Bu zaman aralığında eşleşme bulunmazsa, yöntem bir RegexMatchTimeoutException özel durumu oluşturur. matchTimeout, yöntemin yürütüldiği uygulama etki alanı için tanımlanan varsayılan zaman aşımı değerlerini geçersiz kılar.

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