Regex.Matches Yöntem

Tanım

Bir giriş dizesinde normal ifadenin tüm oluşumlarını arar ve tüm eşleşmeleri döndürür.

Aşırı Yüklemeler

Matches(String, String, RegexOptions, TimeSpan)

Belirtilen eşleşen seçenekleri ve zaman aşımı aralığını kullanarak belirtilen giriş dizesinde belirtilen normal ifadenin tüm oluşumlarını arar.

Matches(String, String, RegexOptions)

Belirtilen eşleştirme seçeneklerini kullanarak belirtilen giriş dizesinde belirtilen normal ifadenin tüm oluşumlarını arar.

Matches(String, Int32)

Belirtilen giriş dizesinde, dizede belirtilen başlangıç konumundan başlayarak normal ifadenin tüm oluşumlarını arar.

Matches(String)

Normal ifadenin tüm oluşumları için belirtilen giriş dizesini arar.

Matches(String, String)

Belirtilen normal ifadenin tüm oluşumları için belirtilen giriş dizesini arar.

Matches(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 giriş dizesinde belirtilen normal ifadenin tüm oluşumlarını arar.

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

Parametreler

input
String

Eşleşme aranacak dize.

pattern
String

Eşleştirecek normal ifade deseni.

options
RegexOptions

Eşleştirme seçeneklerini belirten numaralandırma değerlerinin bit düzeyinde birleşimi.

matchTimeout
TimeSpan

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

Döndürülenler

Arama tarafından bulunan nesnelerin koleksiyonu Match . Eşleşme bulunmazsa, yöntemi boş bir koleksiyon nesnesi döndürür.

Özel durumlar

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

input veya pattern şeklindedir null.

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

-veya-

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

Örnekler

Aşağıdaki örnek, "es" ile biten tümcedeki herhangi bir sözcükle eşleşen büyük/küçük harfe duyarlı bir karşılaştırma yapmak için yöntemini çağırır Matches(String, String, RegexOptions, TimeSpan) . Ardından giriş dizesiyle desenin Matches(String, String, RegexOptions, TimeSpan) büyük/küçük harfe duyarlı olmayan bir karşılaştırmasını gerçekleştirmek için yöntemini çağırır. Her iki durumda da zaman aşımı aralığı bir saniye olarak ayarlanır. Çıktıda gösterildiği gibi iki yöntem farklı sonuçlar döndürür.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string pattern = @"\b\w+es\b";
      string sentence = "NOTES: Any notes or comments are optional.";
      
      // Call Matches method without specifying any options.
      try {
         foreach (Match match in Regex.Matches(sentence, pattern,
                                               RegexOptions.None,
                                               TimeSpan.FromSeconds(1)))
            Console.WriteLine("Found '{0}' at position {1}", 
                              match.Value, match.Index);
      }
      catch (RegexMatchTimeoutException) {
         // Do Nothing: Assume that timeout represents no match.
      }
      Console.WriteLine();

      // Call Matches method for case-insensitive matching.
      try { 
         foreach (Match match in Regex.Matches(sentence, pattern, RegexOptions.IgnoreCase))
            Console.WriteLine("Found '{0}' at position {1}", 
                              match.Value, match.Index);
      }
      catch (RegexMatchTimeoutException) {}
   }
}
// The example displays the following output:
//       Found 'notes' at position 11
//       
//       Found 'NOTES' at position 0
//       Found 'notes' at position 11
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim pattern As String = "\b\w+es\b"
      Dim sentence As String = "NOTES: Any notes or comments are optional."
      
      ' Call Matches method without specifying any options.
      For Each match As Match In Regex.Matches(sentence, pattern, 
                                               RegexOptions.None, 
                                               TimeSpan.FromSeconds(1))
         Try
            Console.WriteLine("Found '{0}' at position {1}", match.Value, match.Index)
         Catch e As RegexMatchTimeoutException
            ' Do Nothing: Assume that timeout represents no match.
         End Try
      Next
      Console.WriteLine()
      
      ' Call Matches method for case-insensitive matching.
      Try
         For Each match As Match In Regex.Matches(sentence, pattern, 
                                                  RegexOptions.IgnoreCase,
                                                  TimeSpan.FromSeconds(1))
            Console.WriteLine("Found '{0}' at position {1}", match.Value, match.Index)
         Next
      Catch de As RegexMatchTimeoutException
         ' Do Nothing: Assume that timeout represents no match.
      End Try
   End Sub
End Module
' The example displays the following output:
'       Found 'notes' at position 11
'       
'       Found 'NOTES' at position 0
'       Found 'notes' at position 11

Normal ifade deseni \b\w+es\b aşağıdaki tabloda gösterildiği gibi tanımlanır.

Desen Description
\b Bir sözcük sınırında eşleşmeye başla.
\w+ Bir veya daha fazla sözcük karakteri eşleştir.
es "es" değişmez dizesini eşleştirin.
\b Eşlemeyi bir sözcük sınırında sonlandır.

Açıklamalar

Matches(String, String, RegexOptions, TimeSpan) yöntemi yöntemine Match(String, String, RegexOptions, TimeSpan) benzer, tek bir eşleşme yerine giriş dizesinde bulunan tüm eşleşmeler hakkında bilgi döndürmesi dışında. Aşağıdaki koda eşdeğerdir:

   try {
      Match match = Regex.Match(input, pattern, options,
                                TimeSpan.FromSeconds(1));
      while (match.Success) {
            // Handle match here...

            match = match.NextMatch();
      }  
   }
   catch (RegexMatchTimeoutException) {
      // Do nothing: assume that exception represents no match.
   }
   Try
      Dim match As Match = Regex.Match(input, pattern, options, 
                                       TimeSpan.FromSeconds(1))
      Do While match.Success
            ' Handle match here...

            match = match.NextMatch()
      Loop  
   Catch e As RegexMatchTimeoutException
      ' Do nothing: assume that exception represents no match.
   End Try

Statik Matches yöntemler, belirtilen normal ifade desenine sahip bir Regex nesne oluşturma ve örnek yöntemini Matchesçağırma ile eşdeğerdir.

parametresi, pattern eşleşecek dizeyi sembolik 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.

yöntemi, Matches döndürülen MatchCollection nesneyi doldurmak için gecikmeli değerlendirme kullanır. gibi MatchCollection.Count bu koleksiyonun üyelerine erişmek, MatchCollection.CopyTo koleksiyonun hemen doldurulmasına neden olur. Gecikmeli değerlendirmeden yararlanmak için Visual Basic'te C# ve For Each...Next gibi foreach bir yapı kullanarak koleksiyonu yinelemeniz gerekir.

Gecikmeli değerlendirmesi nedeniyle yöntemini çağırmak Matches bir RegexMatchTimeoutException özel durum oluşturmaz. Ancak, eşleşen bir işlem parametresi tarafından belirtilen bu zaman aşımı aralığını aşarsa, bu yöntem tarafındanmatchTimeout döndürülen nesne üzerinde MatchCollection bir işlem gerçekleştirildiğinde bir özel durum oluşturulur.

Arayanlara Notlar

parametresini matchTimeout iki saniye gibi uygun bir değere ayarlamanızı öneririz. belirterek InfiniteMatchTimeoutzaman 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ırakmanız gerekir:

  • Normal bir ifade tarafından işlenen giriş bilinen ve güvenilir 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

Matches(String, String, RegexOptions)

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

Belirtilen eşleştirme seçeneklerini kullanarak belirtilen giriş dizesinde belirtilen normal ifadenin tüm oluşumlarını arar.

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

Parametreler

input
String

Eşleşme aranacak dize.

pattern
String

Eşleştirecek normal ifade deseni.

options
RegexOptions

Eşleştirme seçeneklerini belirten numaralandırma değerlerinin bit düzeyinde birleşimi.

Döndürülenler

Arama tarafından bulunan nesnelerin koleksiyonu Match . Eşleşme bulunmazsa, yöntemi boş bir koleksiyon nesnesi döndürür.

Özel durumlar

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

input veya pattern şeklindedir null.

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

Örnekler

Aşağıdaki örnek, "es" ile biten bir cümledeki herhangi bir sözcüğü tanımlamak için yöntemini çağırır Matches(String, String) ve ardından giriş dizesiyle desenin büyük/küçük harfe duyarsız bir karşılaştırmasını gerçekleştirmek için yöntemini çağırır Matches(String, String, RegexOptions) . Çıktıda gösterildiği gibi iki yöntem farklı sonuçlar döndürür.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string pattern = @"\b\w+es\b";
      string sentence = "NOTES: Any notes or comments are optional.";
      
      // Call Matches method without specifying any options.
      foreach (Match match in Regex.Matches(sentence, pattern))
         Console.WriteLine("Found '{0}' at position {1}", 
                           match.Value, match.Index);
      Console.WriteLine();

      // Call Matches method for case-insensitive matching.
      foreach (Match match in Regex.Matches(sentence, pattern, RegexOptions.IgnoreCase))
         Console.WriteLine("Found '{0}' at position {1}", 
                           match.Value, match.Index);
   }
}
// The example displays the following output:
//       Found 'notes' at position 11
//       
//       Found 'NOTES' at position 0
//       Found 'notes' at position 11
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim pattern As String = "\b\w+es\b"
      Dim sentence As String = "NOTES: Any notes or comments are optional."
      
      ' Call Matches method without specifying any options.
      For Each match As Match In Regex.Matches(sentence, pattern)
         Console.WriteLine("Found '{0}' at position {1}", match.Value, match.Index)
      Next
      Console.WriteLine()
      
      ' Call Matches method for case-insensitive matching.
      For Each match As Match In Regex.Matches(sentence, pattern, RegexOptions.IgnoreCase)
         Console.WriteLine("Found '{0}' at position {1}", match.Value, match.Index)
      Next
   End Sub
End Module
' The example displays the following output:
'       Found 'notes' at position 11
'       
'       Found 'NOTES' at position 0
'       Found 'notes' at position 11

Normal ifade deseni \b\w+es\b aşağıdaki tabloda gösterildiği gibi tanımlanır.

Desen Description
\b Bir sözcük sınırında eşleşmeye başla.
\w+ Bir veya daha fazla sözcük karakteri eşleştir.
es "es" değişmez dizesini eşleştirin.
\b Eşlemeyi bir sözcük sınırında sonlandır.

Açıklamalar

Matches(String, String, RegexOptions) yöntemi yöntemine Match(String, String, RegexOptions) benzer, tek bir eşleşme yerine giriş dizesinde bulunan tüm eşleşmeler hakkında bilgi döndürmesi dışında. Aşağıdaki koda eşdeğerdir:

Match match = Regex.Match(input, pattern, options);
while (match.Success) {
      // Handle match here...

      match = match.NextMatch();
}
Dim match As Match = Regex.Match(input, pattern, options)
Do While match.Success
      ' Handle match here...

      match = match.NextMatch()
Loop

Statik Matches yöntemler, belirtilen normal ifade desenine sahip bir Regex nesne oluşturma ve örnek yöntemini Matchesçağırma ile eşdeğerdir.

parametresi, pattern eşleşecek dizeyi sembolik 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.

yöntemi, Matches döndürülen MatchCollection nesneyi doldurmak için gecikmeli değerlendirme kullanır. gibi MatchCollection.Count bu koleksiyonun üyelerine erişmek, MatchCollection.CopyTo koleksiyonun hemen doldurulmasına neden olur. Gecikmeli değerlendirmeden yararlanmak için Visual Basic'te C# ve For Each...Next gibi foreach bir yapı kullanarak koleksiyonu yinelemeniz gerekir.

Gecikmeli değerlendirmesi nedeniyle yöntemini çağırmak Matches(String, String) bir RegexMatchTimeoutException özel durum oluşturmaz. Ancak, geçerli uygulama etki alanının "REGEX_DEFAULT_MATCH_TIMEOUT" özelliği tarafından bir zaman aşımı aralığı tanımlandığında ve eşleşen bir işlem bu zaman aşımı aralığını aşarsa, bu yöntem tarafından döndürülen nesnede MatchCollection bir işlem gerçekleştirildiğinde özel durum oluşturulur.

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 bir zaman aşımı değeri tanımlanmamışsa, yöntemin zaman aşımına girmesini engelleyen değeri InfiniteMatchTimeoutkullanılır. Birden çok desen eşleşmesini almak için önerilen statik yöntem, zaman aşımı aralığını ayarlamanıza olanak tanıyan yöntemidir Matches(String, String, RegexOptions, TimeSpan).

Ayrıca bkz.

Şunlara uygulanır

Matches(String, Int32)

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

Belirtilen giriş dizesinde, dizede belirtilen başlangıç konumundan başlayarak normal ifadenin tüm oluşumlarını arar.

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

Parametreler

input
String

Eşleşme aranacak dize.

startat
Int32

Aramanın başlatıldığı giriş dizesindeki karakter konumu.

Döndürülenler

Arama tarafından bulunan nesnelerin koleksiyonu Match . Eşleşme bulunmazsa, yöntemi boş bir koleksiyon nesnesi döndürür.

Özel durumlar

input, null değeridir.

startatsıfırdan küçük veya uzunluğundan büyük.input

Örnekler

Aşağıdaki örnek, "es" ile biten bir cümledeki ilk sözcüğü bulmak için yöntemini kullanır Match(String) ve ardından "es" ile biten ek sözcükleri tanımlamak için yöntemini çağırır Matches(String, Int32) .

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string pattern = @"\b\w+es\b";
      Regex rgx = new Regex(pattern);
      string sentence = "Who writes these notes and uses our paper?";
      
      // Get the first match.
      Match match = rgx.Match(sentence);
      if (match.Success) {
         Console.WriteLine("Found first 'es' in '{0}' at position {1}", 
                           match.Value, match.Index);
         // Get any additional matches.
         foreach (Match m in rgx.Matches(sentence, match.Index + match.Length))
            Console.WriteLine("Also found '{0}' at position {1}", 
                              m.Value, m.Index);
      }   
   }
}
// The example displays the following output:
//       Found first 'es' in 'writes' at position 4
//       Also found 'notes' at position 17
//       Also found 'uses' at position 27
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim pattern As String = "\b\w+es\b"
      Dim rgx As New Regex(pattern)
      Dim sentence As String = "Who writes these notes and uses our paper?"
      
      ' Get the first match.
      Dim match As Match = rgx.Match(sentence)
      If match.Success Then
         Console.WriteLine("Found first 'es' in '{0}' at position {1}", _
                           match.Value, match.Index)
         ' Get any additional matches.
         For Each match In rgx.Matches(sentence, match.Index + match.Length)
            Console.WriteLine("Also found '{0}' at position {1}", _
                              match.Value, match.Index)
         Next
      End If   
   End Sub
End Module
' The example displays the following output:
'       Found first 'es' in 'writes' at position 4
'       Also found 'notes' at position 17
'       Also found 'uses' at position 27

Normal ifade deseni \b\w+es\b aşağıdaki tabloda gösterildiği gibi tanımlanır.

Desen Description
\b Bir sözcük sınırında eşleşmeye başla.
\w+ Bir veya daha fazla sözcük karakteri eşleştir.
es "es" değişmez dizesini eşleştirin.
\b Eşlemeyi bir sözcük sınırında sonlandır.

Açıklamalar

Matches(String, Int32) yöntemi yöntemine Match(String, Int32) benzer, tek bir eşleşme yerine giriş dizesinde bulunan tüm eşleşmeler hakkında bilgi döndürmesi dışında. Aşağıdaki koda eşdeğerdir:

Match match = regex.Match(input, startAt);
while (match.Success) {
      // Handle match here...

      match = match.NextMatch();
}
Dim match As Match = regex.Match(input, startAt)
Do While match.Success
      ' Handle match here...

      match = match.NextMatch()
Loop

Yönteminin arama yaptığı Matches(String, Int32) normal ifade deseni, sınıf oluşturucularından Regex birine yapılan çağrı tarafından tanımlanır. Normal ifade deseni oluşturabilen öğeler hakkında daha fazla bilgi için bkz. Normal İfade Dili - Hızlı Başvuru.

hakkında startatdaha fazla ayrıntı için öğesinin Açıklamalar bölümüne Match(String, Int32)bakın.

yöntemi, Matches döndürülen MatchCollection nesneyi doldurmak için gecikmeli değerlendirme kullanır. gibi MatchCollection.Count bu koleksiyonun üyelerine erişmek ve MatchCollection.CopyTo koleksiyonun hemen doldurulmasına neden olur. Gecikmeli değerlendirmeden yararlanmak için, Visual Basic'te C# ve For Each...Next gibi foreach bir yapı kullanarak koleksiyonu yinelemeniz gerekir.

Yavaş değerlendirmesi nedeniyle yöntemini çağırmak Matches(String, Int32) bir RegexMatchTimeoutException özel durum oluşturmaz. Ancak, özellik değilse Regex.InfiniteMatchTimeout ve eşleşen bir işlem zaman aşımı aralığını aşarsaMatchTimeout, bu yöntem tarafından döndürülen nesne üzerinde MatchCollection bir işlem gerçekleştirildiğinde özel durum oluşturulur.

Ayrıca bkz.

Şunlara uygulanır

Matches(String)

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

Belirtilen giriş dizesinde normal ifadenin tüm oluşumlarını arar.

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

Parametreler

input
String

Eşleşme aranacak dize.

Döndürülenler

Arama tarafından bulunan nesnelerin koleksiyonu Match . Eşleşme bulunmazsa, yöntemi boş bir koleksiyon nesnesi döndürür.

Özel durumlar

input, null değeridir.

Örnekler

Aşağıdaki örnek, "es" ile biten tümcedeki sözcükleri tanımlamak için yöntemini kullanır Matches(String) .

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string pattern = @"\b\w+es\b";
      Regex rgx = new Regex(pattern);
      string sentence = "Who writes these notes?";
      
      foreach (Match match in rgx.Matches(sentence))
         Console.WriteLine("Found '{0}' at position {1}", 
                           match.Value, match.Index);
   }
}
// The example displays the following output:
//       Found 'writes' at position 4
//       Found 'notes' at position 17
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim pattern As String = "\b\w+es\b"
      Dim rgx As New Regex(pattern)
      Dim sentence As String = "Who writes these notes?"
      
      For Each match As Match In rgx.Matches(sentence)
         Console.WriteLine("Found '{0}' at position {1}", match.Value, match.Index)
      Next
   End Sub
End Module
' The example displays the following output:
'       Found 'writes' at position 4
'       Found 'notes' at position 17

Normal ifade deseni \b\w+es\b aşağıdaki tabloda gösterildiği gibi tanımlanır.

Desen Description
\b Bir sözcük sınırında eşleşmeye başla.
\w+ Bir veya daha fazla sözcük karakteri eşleştir.
es "es" değişmez dizesini eşleştirin.
\b Eşlemeyi bir sözcük sınırında sonlandır.

Açıklamalar

Matches(String) yöntemi yöntemine Match(String) benzer, tek bir eşleşme yerine giriş dizesinde bulunan tüm eşleşmeler hakkında bilgi döndürmesi dışında. Aşağıdaki koda eşdeğerdir:

Match match = regex.Match(input);
while (match.Success) {
      // Handle match here...

      match = match.NextMatch();
}
Dim match As Match = regex.Match(input)
Do While match.Success
      ' Handle match here...

      match = match.NextMatch()
Loop

Koleksiyon yalnızca eşleşmeleri içerir ve ilk eşleşme olmayanda sonlanır.

Yönteminin arama yaptığı Matches(String) normal ifade deseni, sınıf oluşturucularından Regex birine yapılan çağrı tarafından tanımlanır. Normal ifade deseni oluşturabilen öğeler hakkında daha fazla bilgi için bkz. Normal İfade Dili - Hızlı Başvuru.

yöntemi, Matches döndürülen MatchCollection nesneyi doldurmak için gecikmeli değerlendirme kullanır. gibi MatchCollection.Count bu koleksiyonun üyelerine erişmek ve MatchCollection.CopyTo koleksiyonun hemen doldurulmasına neden olur. Gecikmeli değerlendirmeden yararlanmak için, Visual Basic'te C# ve For Each...Next gibi foreach bir yapı kullanarak koleksiyonu yinelemeniz gerekir.

Yavaş değerlendirmesi nedeniyle yöntemini çağırmak Matches(String) bir RegexMatchTimeoutException özel durum oluşturmaz. Ancak, özellik değilse Regex.InfiniteMatchTimeout ve eşleşen bir işlem zaman aşımı aralığını aşarsaMatchTimeout, bu yöntem tarafından döndürülen nesne üzerinde MatchCollection bir işlem gerçekleştirildiğinde özel durum oluşturulur.

Ayrıca bkz.

Şunlara uygulanır

Matches(String, String)

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

Belirtilen normal ifadenin tüm oluşumları için belirtilen giriş dizesini arar.

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

Parametreler

input
String

Eşleşme aranacak dize.

pattern
String

Eşleştirecek normal ifade deseni.

Döndürülenler

Arama tarafından bulunan nesnelerin koleksiyonu Match . Eşleşme bulunmazsa, yöntemi boş bir koleksiyon nesnesi döndürür.

Özel durumlar

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

input veya pattern şeklindedir null.

Örnekler

Aşağıdaki örnek, "es" ile biten bir cümledeki herhangi bir sözcüğü tanımlamak için yöntemini kullanır Matches(String, String) .

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string pattern = @"\b\w+es\b";
      string sentence = "Who writes these notes?";
      
      foreach (Match match in Regex.Matches(sentence, pattern))
         Console.WriteLine("Found '{0}' at position {1}", 
                           match.Value, match.Index);
   }
}
// The example displays the following output:
//       Found 'writes' at position 4
//       Found 'notes' at position 17
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim pattern As String = "\b\w+es\b"
      Dim sentence As String = "Who writes these notes?"
      For Each match As Match In Regex.Matches(sentence, pattern)
         Console.WriteLine("Found '{0}' at position {1}", match.Value, match.Index)
      Next
   End Sub
End Module
' The example displays the following output:
'       Found 'writes' at position 4
'       Found 'notes' at position 17

Normal ifade deseni \b\w+es\b aşağıdaki tabloda gösterildiği gibi tanımlanır.

Desen Description
\b Bir sözcük sınırında eşleşmeye başla.
\w+ Bir veya daha fazla sözcük karakteri eşleştir.
es "es" değişmez dizesini eşleştirin.
\b Eşlemeyi bir sözcük sınırında sonlandır.

Açıklamalar

Matches(String, String) yöntemi yöntemine Match(String, String) benzer, tek bir eşleşme yerine giriş dizesinde bulunan tüm eşleşmeler hakkında bilgi döndürmesi dışında. Aşağıdaki koda eşdeğerdir:

Match match = Regex.Match(input, pattern);
while (match.Success) {
      // Handle match here...

      match = match.NextMatch();
}
Dim match As Match = Regex.Match(input, pattern)
Do While match.Success
      ' Handle match here...

      match = match.NextMatch()
Loop

Statik Matches yöntemler, belirtilen normal ifade desenine sahip bir Regex nesne oluşturmak ve örnek yöntemini Matchesçağırmakla eşdeğerdir.

parametresi, pattern eşleşecek dizeyi sembolik 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.

yöntemi, Matches döndürülen MatchCollection nesneyi doldurmak için gecikmeli değerlendirme kullanır. gibi MatchCollection.Count bu koleksiyonun üyelerine erişmek ve MatchCollection.CopyTo koleksiyonun hemen doldurulmasına neden olur. Gecikmeli değerlendirmeden yararlanmak için, Visual Basic'te C# ve For Each...Next gibi foreach bir yapı kullanarak koleksiyonu yinelemeniz gerekir.

Yavaş değerlendirmesi nedeniyle yöntemini çağırmak Matches(String, String) bir RegexMatchTimeoutException özel durum oluşturmaz. Ancak, geçerli uygulama etki alanının "REGEX_DEFAULT_MATCH_TIMEOUT" özelliği tarafından bir zaman aşımı aralığı tanımlanırsa ve eşleşen bir işlem bu zaman aşımı aralığını aşarsa, bu yöntem tarafından döndürülen nesnede MatchCollection bir işlem gerçekleştirildiğinde özel durum oluşturulur.

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 bir zaman aşımı değeri tanımlanmamışsa, yönteminin zaman aşımına geçmesini engelleyen değeri InfiniteMatchTimeoutkullanılır. Birden çok desen eşleşmesini almak için önerilen statik yöntem, zaman aşımı aralığını belirtmenize olanak tanıyan yöntemidir Matches(String, String, RegexOptions, TimeSpan).

Ayrıca bkz.

Şunlara uygulanır