Regex.Matches Yöntem

Tanım

Bir normal ifadenin tüm oluşumları için bir giriş dizesini arar ve tüm eşleşmeleri döndürür.Searches an input string for all occurrences of a regular expression and returns all the matches.

Aşırı Yüklemeler

Matches(String)

Bir normal ifadenin tüm oluşumları için belirtilen giriş dizesini arar.Searches the specified input string for all occurrences of a regular expression.

Matches(String, Int32)

Dizedeki belirtilen başlangıç konumundan başlayarak, bir normal ifadenin tüm oluşumları için belirtilen giriş dizesini arar.Searches the specified input string for all occurrences of a regular expression, beginning at the specified starting position in the string.

Matches(String, String)

Belirtilen bir normal ifadenin tüm oluşumları için belirtilen giriş dizesini arar.Searches the specified input string for all occurrences of a specified regular expression.

Matches(String, String, RegexOptions)

Belirtilen eşleşen seçenekleri kullanarak belirtilen bir normal ifadenin tüm oluşumları için belirtilen giriş dizesini arar.Searches the specified input string for all occurrences of a specified regular expression, using the specified matching options.

Matches(String, String, RegexOptions, TimeSpan)

Belirtilen eşleştirme seçeneklerini ve zaman aşımı aralığını kullanarak belirtilen bir normal ifadenin tüm oluşumları için belirtilen giriş dizesini arar.Searches the specified input string for all occurrences of a specified regular expression, using the specified matching options and time-out interval.

Matches(String)

Bir normal ifadenin tüm oluşumları için belirtilen giriş dizesini arar.Searches the specified input string for all occurrences of a regular expression.

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

Bir eşleşme için Aranacak dize.The string to search for a match.

Döndürülenler

MatchCollection

MatchArama tarafından bulunan nesnelerin koleksiyonu.A collection of the Match objects found by the search. Hiçbir eşleşme bulunmazsa, yöntem boş bir koleksiyon nesnesi döndürür.If no matches are found, the method returns an empty collection object.

Özel durumlar

input, null değeridir.input is null.

Örnekler

Aşağıdaki örnek, Matches(String) "es" ile biten bir tümcedeki herhangi bir sözcüğü belirlemek için yöntemini kullanır.The following example uses the Matches(String) method to identify any words in a sentence that end in "es".

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 deseninin, \b\w+es\b Aşağıdaki tabloda gösterildiği gibi tanımlanmıştır.The regular expression pattern \b\w+es\b is defined as shown in the following table.

DesenPattern DescriptionDescription
\b Bir sözcük sınırında eşleşmeye başla.Begin the match at a word boundary.
\w+ Bir veya daha fazla sözcük karakteri eşleştir.Match one or more word characters.
es "Es" değişmez dizesini eşleştirin.Match the literal string "es".
\b Eşlemeyi bir sözcük sınırında sonlandır.End the match at a word boundary.

Açıklamalar

Matches(String)Yöntemi Match(String) yöntemine benzer, ancak tek bir eşleşme yerine giriş dizesinde bulunan tüm eşleşmeler hakkında bilgi döndürmektedir.The Matches(String) method is similar to the Match(String) method, except that it returns information about all the matches found in the input string, instead of a single match. Aşağıdaki koda eşdeğerdir:It is equivalent to the following code:

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ştirmesiz ile sonlanır.The collection includes only matches and terminates at the first non-match.

Matches(String)Yöntem aramalarının, sınıf oluşturucularından birine yapılan çağrı tarafından tanımlandığı normal ifade deseninin Regex .The regular expression pattern for which the Matches(String) method searches is defined by the call to one of the Regex class constructors. Normal ifade deseninin oluşturmasına yönelik öğeler hakkında daha fazla bilgi için bkz. normal Ifade dili-hızlı başvuru.For more information about the elements that can form a regular expression pattern, see Regular Expression Language - Quick Reference.

MatchesYöntemi, döndürülen nesneyi doldurmak için geç değerlendirmeyi kullanır MatchCollection .The Matches method uses lazy evaluation to populate the returned MatchCollection object. Ve gibi bu koleksiyonun üyelerine erişme MatchCollection.Count MatchCollection.CopyTo , koleksiyonun hemen doldurulmasına neden olur.Accessing members of this collection such as MatchCollection.Count and MatchCollection.CopyTo causes the collection to be populated immediately. Yavaş değerlendirmeden yararlanmak için, foreach For Each Visual Basic Içinde C# ve... gibi bir yapı kullanarak koleksiyonu tekrarlayabilirsiniz Next .To take advantage of lazy evaluation, you should iterate the collection by using a construct such as foreach in C# and For Each...Next in Visual Basic.

Yavaş değerlendirmesinden dolayı Matches(String) yöntemini çağırmak RegexMatchTimeoutException özel durum oluşturmaz.Because of its lazy evaluation, calling the Matches(String) method does not throw a RegexMatchTimeoutException exception. Ancak, bu yöntem tarafından döndürülen nesnede bir işlem gerçekleştirildiğinde özel durum oluşur MatchCollection , MatchTimeout özellik değildir Regex.InfiniteMatchTimeout ve eşleşen bir işlem zaman aşımı aralığını aşarsa.However, the exception is thrown when an operation is performed on the MatchCollection object returned by this method, if the MatchTimeout property is not Regex.InfiniteMatchTimeout and a matching operation exceeds the time-out interval.

Ayrıca bkz.

Şunlara uygulanır

Matches(String, Int32)

Dizedeki belirtilen başlangıç konumundan başlayarak, bir normal ifadenin tüm oluşumları için belirtilen giriş dizesini arar.Searches the specified input string for all occurrences of a regular expression, beginning at the specified starting position in the string.

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

Bir eşleşme için Aranacak dize.The string to search for a match.

startat
Int32

Aramanın başlatılacağı giriş dizesindeki karakter konumu.The character position in the input string at which to start the search.

Döndürülenler

MatchCollection

MatchArama tarafından bulunan nesnelerin koleksiyonu.A collection of the Match objects found by the search. Hiçbir eşleşme bulunmazsa, yöntem boş bir koleksiyon nesnesi döndürür.If no matches are found, the method returns an empty collection object.

Özel durumlar

input, null değeridir.input is null.

startat sıfırdan küçük veya uzunluğundan büyük input .startat is less than zero or greater than the length of input.

Örnekler

Aşağıdaki örnek, Match(String) "es" ile biten bir tümcede ilk sözcüğü bulmak için yöntemini kullanır ve ardından Matches(String, Int32) "es" ile biten ek kelimeleri belirlemek için yöntemini çağırır.The following example uses the Match(String) method to find the first word in a sentence that ends in "es", and then calls the Matches(String, Int32) method to identify any additional words that end in "es".

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 deseninin, \b\w+es\b Aşağıdaki tabloda gösterildiği gibi tanımlanmıştır.The regular expression pattern \b\w+es\b is defined as shown in the following table.

DesenPattern DescriptionDescription
\b Bir sözcük sınırında eşleşmeye başla.Begin the match at a word boundary.
\w+ Bir veya daha fazla sözcük karakteri eşleştir.Match one or more word characters.
es "Es" değişmez dizesini eşleştirin.Match the literal string "es".
\b Eşlemeyi bir sözcük sınırında sonlandır.End the match at a word boundary.

Açıklamalar

Matches(String, Int32)Yöntemi Match(String, Int32) yöntemine benzer, ancak tek bir eşleşme yerine giriş dizesinde bulunan tüm eşleşmeler hakkında bilgi döndürmektedir.The Matches(String, Int32) method is similar to the Match(String, Int32) method, except that it returns information about all the matches found in the input string, instead of a single match. Aşağıdaki koda eşdeğerdir:It is equivalent to the following code:

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  

Matches(String, Int32)Yöntem aramalarının, sınıf oluşturucularından birine yapılan çağrı tarafından tanımlandığı normal ifade deseninin Regex .The regular expression pattern for which the Matches(String, Int32) method searches is defined by the call to one of the Regex class constructors. Normal ifade deseninin oluşturmasına yönelik öğeler hakkında daha fazla bilgi için bkz. normal Ifade dili-hızlı başvuru.For more information about the elements that can form a regular expression pattern, see Regular Expression Language - Quick Reference.

MatchesYöntemi, döndürülen nesneyi doldurmak için geç değerlendirmeyi kullanır MatchCollection .The Matches method uses lazy evaluation to populate the returned MatchCollection object. Ve gibi bu koleksiyonun üyelerine erişme MatchCollection.Count MatchCollection.CopyTo , koleksiyonun hemen doldurulmasına neden olur.Accessing members of this collection such as MatchCollection.Count and MatchCollection.CopyTo causes the collection to be populated immediately. Yavaş değerlendirmeden yararlanmak için, foreach For Each Visual Basic Içinde C# ve... gibi bir yapı kullanarak koleksiyonu tekrarlayabilirsiniz Next .To take advantage of lazy evaluation, you should iterate the collection by using a construct such as foreach in C# and For Each...Next in Visual Basic.

Yavaş değerlendirmesinden dolayı Matches(String, Int32) yöntemini çağırmak RegexMatchTimeoutException özel durum oluşturmaz.Because of its lazy evaluation, calling the Matches(String, Int32) method does not throw a RegexMatchTimeoutException exception. Ancak, bu yöntem tarafından döndürülen nesnede bir işlem gerçekleştirildiğinde özel durum oluşur MatchCollection , MatchTimeout özellik değildir Regex.InfiniteMatchTimeout ve eşleşen bir işlem zaman aşımı aralığını aşarsa.However, the exception is thrown when an operation is performed on the MatchCollection object returned by this method, if the MatchTimeout property is not Regex.InfiniteMatchTimeout and a matching operation exceeds the time-out interval.

Ayrıca bkz.

Şunlara uygulanır

Matches(String, String)

Belirtilen bir normal ifadenin tüm oluşumları için belirtilen giriş dizesini arar.Searches the specified input string for all occurrences of a specified regular expression.

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

Bir eşleşme için Aranacak dize.The string to search for a match.

pattern
String

Eşleştirilecek normal ifade deseninin.The regular expression pattern to match.

Döndürülenler

MatchCollection

MatchArama tarafından bulunan nesnelerin koleksiyonu.A collection of the Match objects found by the search. Hiçbir eşleşme bulunmazsa, yöntem boş bir koleksiyon nesnesi döndürür.If no matches are found, the method returns an empty collection object.

Özel durumlar

Normal ifade ayrıştırma hatası oluştu.A regular expression parsing error occurred.

input ya pattern da null .input or pattern is null.

Örnekler

Aşağıdaki örnek, Matches(String, String) "es" ile biten bir tümcedeki herhangi bir sözcüğü tanımlamak için yöntemini kullanır.The following example uses the Matches(String, String) method to identify any word in a sentence that ends in "es".

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 deseninin, \b\w+es\b Aşağıdaki tabloda gösterildiği gibi tanımlanmıştır.The regular expression pattern \b\w+es\b is defined as shown in the following table.

DesenPattern DescriptionDescription
\b Bir sözcük sınırında eşleşmeye başla.Begin the match at a word boundary.
\w+ Bir veya daha fazla sözcük karakteri eşleştir.Match one or more word characters.
es "Es" değişmez dizesini eşleştirin.Match the literal string "es".
\b Eşlemeyi bir sözcük sınırında sonlandır.End the match at a word boundary.

Açıklamalar

Matches(String, String)Yöntemi Match(String, String) yöntemine benzer, ancak tek bir eşleşme yerine giriş dizesinde bulunan tüm eşleşmeler hakkında bilgi döndürmektedir.The Matches(String, String) method is similar to the Match(String, String) method, except that it returns information about all the matches found in the input string, instead of a single match. Aşağıdaki koda eşdeğerdir:It is equivalent to the following code:

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, Regex belirtilen normal ifade düzeniyle bir nesne oluşturmak ve örnek yöntemi çağırmak için eşdeğerdir Matches .The static Matches methods are equivalent to constructing a Regex object with the specified regular expression pattern and calling the instance method Matches.

patternParametresi, eşleşecek dizeyi tamamen tanımlayan normal ifade dili öğelerinden oluşur.The pattern parameter consists of regular expression language elements that symbolically describe the string to match. Normal ifadeler hakkında daha fazla bilgi için bkz. .NET Framework normal ifadeler ve normal Ifade dili-hızlı başvuru.For more information about regular expressions, see .NET Framework Regular Expressions and Regular Expression Language - Quick Reference.

MatchesYöntemi, döndürülen nesneyi doldurmak için geç değerlendirmeyi kullanır MatchCollection .The Matches method uses lazy evaluation to populate the returned MatchCollection object. Ve gibi bu koleksiyonun üyelerine erişme MatchCollection.Count MatchCollection.CopyTo , koleksiyonun hemen doldurulmasına neden olur.Accessing members of this collection such as MatchCollection.Count and MatchCollection.CopyTo causes the collection to be populated immediately. Yavaş değerlendirmeden yararlanmak için, foreach For Each Visual Basic Içinde C# ve... gibi bir yapı kullanarak koleksiyonu tekrarlayabilirsiniz Next .To take advantage of lazy evaluation, you should iterate the collection by using a construct such as foreach in C# and For Each...Next in Visual Basic.

Yavaş değerlendirmesinden dolayı Matches(String, String) yöntemini çağırmak RegexMatchTimeoutException özel durum oluşturmaz.Because of its lazy evaluation, calling the Matches(String, String) method does not throw a RegexMatchTimeoutException exception. Ancak, bu yöntem tarafından döndürülen nesnede bir işlem gerçekleştirildiğinde özel durum oluşur MatchCollection . bir zaman aşımı aralığı, geçerli uygulama etki alanının "REGEX_DEFAULT_MATCH_TIMEOUT" özelliği tarafından tanımlanır ve eşleşen bir işlem bu zaman aşımı aralığını aşarsa.However, the exception is thrown when an operation is performed on the MatchCollection object returned by this method, if a time-out interval is defined by the "REGEX_DEFAULT_MATCH_TIMEOUT" property of the current application domain and a matching operation exceeds this time-out interval.

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ğrar.This method times out after an interval that is equal to the default time-out value of the application domain in which it is called. Uygulama etki alanı için bir zaman aşımı değeri tanımlanmamışsa, yöntemin zaman aşımına uğramasını önleyen değer InfiniteMatchTimeout kullanılır.If a time-out value has not been defined for the application domain, the value InfiniteMatchTimeout, which prevents the method from timing out, is used. Birden çok örüntü eşleşme almak için önerilen statik yöntem, Matches(String, String, RegexOptions, TimeSpan) zaman aşımı aralığını belirtmenizi sağlayan bir yöntemdir.The recommended static method for retrieving multiple pattern matches is Matches(String, String, RegexOptions, TimeSpan), which lets you specify the time-out interval.

Ayrıca bkz.

Şunlara uygulanır

Matches(String, String, RegexOptions)

Belirtilen eşleşen seçenekleri kullanarak belirtilen bir normal ifadenin tüm oluşumları için belirtilen giriş dizesini arar.Searches the specified input string for all occurrences of a specified regular expression, using the specified matching options.

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

Bir eşleşme için Aranacak dize.The string to search for a match.

pattern
String

Eşleştirilecek normal ifade deseninin.The regular expression pattern to match.

options
RegexOptions

Eşleştirme seçeneklerini belirten numaralandırma değerlerinin bit düzeyinde birleşimi.A bitwise combination of the enumeration values that specify options for matching.

Döndürülenler

MatchCollection

MatchArama tarafından bulunan nesnelerin koleksiyonu.A collection of the Match objects found by the search. Hiçbir eşleşme bulunmazsa, yöntem boş bir koleksiyon nesnesi döndürür.If no matches are found, the method returns an empty collection object.

Özel durumlar

Normal ifade ayrıştırma hatası oluştu.A regular expression parsing error occurred.

input ya pattern da null .input or pattern is null.

options , geçerli bir bit düzeyinde değer birleşimi değil RegexOptions .options is not a valid bitwise combination of RegexOptions values.

Örnekler

Aşağıdaki örnek, Matches(String, String) "es" ile biten bir tümcede bulunan herhangi bir sözcüğü belirlemek için yöntemini çağırır ve ardından, Matches(String, String, RegexOptions) giriş dizesiyle birlikte büyük/küçük harf duyarsız bir karşılaştırma gerçekleştirmek için yöntemini çağırır.The following example calls the Matches(String, String) method to identify any word in a sentence that ends in "es", and then calls the Matches(String, String, RegexOptions) method to perform a case-insensitive comparison of the pattern with the input string. Çıktıda gösterildiği gibi, iki yöntem farklı sonuçlar döndürür.As the output shows, the two methods return different results.

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 deseninin, \b\w+es\b Aşağıdaki tabloda gösterildiği gibi tanımlanmıştır.The regular expression pattern \b\w+es\b is defined as shown in the following table.

DesenPattern DescriptionDescription
\b Bir sözcük sınırında eşleşmeye başla.Begin the match at a word boundary.
\w+ Bir veya daha fazla sözcük karakteri eşleştir.Match one or more word characters.
es "Es" değişmez dizesini eşleştirin.Match the literal string "es".
\b Eşlemeyi bir sözcük sınırında sonlandır.End the match at a word boundary.

Açıklamalar

Matches(String, String, RegexOptions)Yöntemi Match(String, String, RegexOptions) yöntemine benzer, ancak tek bir eşleşme yerine giriş dizesinde bulunan tüm eşleşmeler hakkında bilgi döndürmektedir.The Matches(String, String, RegexOptions) method is similar to the Match(String, String, RegexOptions) method, except that it returns information about all the matches found in the input string, instead of a single match. Aşağıdaki koda eşdeğerdir:It is equivalent to the following code:

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, Regex belirtilen normal ifade düzeniyle bir nesne oluşturmak ve örnek yöntemi çağırmak için eşdeğerdir Matches .The static Matches methods are equivalent to constructing a Regex object with the specified regular expression pattern and calling the instance method Matches.

patternParametresi, eşleşecek dizeyi tamamen tanımlayan normal ifade dili öğelerinden oluşur.The pattern parameter consists of regular expression language elements that symbolically describe the string to match. Normal ifadeler hakkında daha fazla bilgi için bkz. .NET Framework normal ifadeler ve normal Ifade dili-hızlı başvuru.For more information about regular expressions, see .NET Framework Regular Expressions and Regular Expression Language - Quick Reference.

MatchesYöntemi, döndürülen nesneyi doldurmak için geç değerlendirmeyi kullanır MatchCollection .The Matches method uses lazy evaluation to populate the returned MatchCollection object. Ve gibi bu koleksiyonun üyelerine erişme MatchCollection.Count MatchCollection.CopyTo , koleksiyonun hemen doldurulmasına neden olur.Accessing members of this collection such as MatchCollection.Count and MatchCollection.CopyTo causes the collection to be populated immediately. Yavaş değerlendirmeden yararlanmak için, foreach For Each Visual Basic Içinde C# ve... gibi bir yapı kullanarak koleksiyonu tekrarlayabilirsiniz Next .To take advantage of lazy evaluation, you should iterate the collection by using a construct such as foreach in C# and For Each...Next in Visual Basic.

Yavaş değerlendirmesinden dolayı Matches(String, String) yöntemini çağırmak RegexMatchTimeoutException özel durum oluşturmaz.Because of its lazy evaluation, calling the Matches(String, String) method does not throw a RegexMatchTimeoutException exception. Ancak, bu yöntem tarafından döndürülen nesnede bir işlem gerçekleştirildiğinde özel durum oluşur MatchCollection . bir zaman aşımı aralığı, geçerli uygulama etki alanının "REGEX_DEFAULT_MATCH_TIMEOUT" özelliği tarafından tanımlanır ve eşleşen bir işlem bu zaman aşımı aralığını aşarsa.However, the exception is thrown when an operation is performed on the MatchCollection object returned by this method, if a time-out interval is defined by the "REGEX_DEFAULT_MATCH_TIMEOUT" property of the current application domain and a matching operation exceeds this time-out interval.

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ğrar.This method times out after an interval that is equal to the default time-out value of the application domain in which it is called. Uygulama etki alanı için bir zaman aşımı değeri tanımlanmamışsa, yöntemin zaman aşımına uğramasını önleyen değer InfiniteMatchTimeout kullanılır.If a time-out value has not been defined for the application domain, the value InfiniteMatchTimeout, which prevents the method from timing out, is used. Birden çok örüntü eşleşme almak için önerilen statik yöntem, Matches(String, String, RegexOptions, TimeSpan) zaman aşımı aralığını ayarlamanıza olanak sağlar.The recommended static method for retrieving multiple pattern matches is Matches(String, String, RegexOptions, TimeSpan), which lets you set the time-out interval.

Ayrıca bkz.

Şunlara uygulanır

Matches(String, String, RegexOptions, TimeSpan)

Belirtilen eşleştirme seçeneklerini ve zaman aşımı aralığını kullanarak belirtilen bir normal ifadenin tüm oluşumları için belirtilen giriş dizesini arar.Searches the specified input string for all occurrences of a specified regular expression, using the specified matching options and time-out interval.

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

Bir eşleşme için Aranacak dize.The string to search for a match.

pattern
String

Eşleştirilecek normal ifade deseninin.The regular expression pattern to match.

options
RegexOptions

Eşleştirme seçeneklerini belirten numaralandırma değerlerinin bit düzeyinde birleşimi.A bitwise combination of the enumeration values that specify options for matching.

matchTimeout
TimeSpan

Bir zaman aşımı aralığı veya InfiniteMatchTimeout metodun zaman aşımına gerekmediğini belirtmek için.A time-out interval, or InfiniteMatchTimeout to indicate that the method should not time out.

Döndürülenler

MatchCollection

MatchArama tarafından bulunan nesnelerin koleksiyonu.A collection of the Match objects found by the search. Hiçbir eşleşme bulunmazsa, yöntem boş bir koleksiyon nesnesi döndürür.If no matches are found, the method returns an empty collection object.

Özel durumlar

Normal ifade ayrıştırma hatası oluştu.A regular expression parsing error occurred.

input ya pattern da null .input or pattern is null.

options , geçerli bir bit düzeyinde değer birleşimi değil RegexOptions .options is not a valid bitwise combination of RegexOptions values.

-veya--or- matchTimeout negatif, sıfır veya yaklaşık 24 günden fazla.matchTimeout is negative, zero, or greater than approximately 24 days.

Örnekler

Aşağıdaki örnek, Matches(String, String, RegexOptions, TimeSpan) "es" ile biten bir tümcedeki herhangi bir sözcükle eşleşen büyük/küçük harfe duyarlı bir karşılaştırma gerçekleştirmek için yöntemini çağırır.The following example calls the Matches(String, String, RegexOptions, TimeSpan) method to perform a case-sensitive comparison that matches any word in a sentence that ends in "es". Ardından, Matches(String, String, RegexOptions, TimeSpan) giriş dizesiyle birlikte büyük/küçük harf duyarsız bir karşılaştırma gerçekleştirmek için yöntemini çağırır.It then calls the Matches(String, String, RegexOptions, TimeSpan) method to perform a case-insensitive comparison of the pattern with the input string. Her iki durumda da, zaman aşımı aralığı bir saniye olarak ayarlanır.In both cases, the time-out interval is set to one second. Çıktıda gösterildiği gibi, iki yöntem farklı sonuçlar döndürür.As the output shows, the two methods return different results.

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 deseninin, \b\w+es\b Aşağıdaki tabloda gösterildiği gibi tanımlanmıştır.The regular expression pattern \b\w+es\b is defined as shown in the following table.

DesenPattern DescriptionDescription
\b Bir sözcük sınırında eşleşmeye başla.Begin the match at a word boundary.
\w+ Bir veya daha fazla sözcük karakteri eşleştir.Match one or more word characters.
es "Es" değişmez dizesini eşleştirin.Match the literal string "es".
\b Eşlemeyi bir sözcük sınırında sonlandır.End the match at a word boundary.

Açıklamalar

Matches(String, String, RegexOptions, TimeSpan)Yöntemi Match(String, String, RegexOptions, TimeSpan) yöntemine benzer, ancak tek bir eşleşme yerine giriş dizesinde bulunan tüm eşleşmeler hakkında bilgi döndürmektedir.The Matches(String, String, RegexOptions, TimeSpan) method is similar to the Match(String, String, RegexOptions, TimeSpan) method, except that it returns information about all the matches found in the input string, instead of a single match. Aşağıdaki koda eşdeğerdir:It is equivalent to the following code:

   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, Regex belirtilen normal ifade düzeniyle bir nesne oluşturmak ve örnek yöntemi çağırmak için eşdeğerdir Matches .The static Matches methods are equivalent to constructing a Regex object with the specified regular expression pattern and calling the instance method Matches.

patternParametresi, eşleşecek dizeyi tamamen tanımlayan normal ifade dili öğelerinden oluşur.The pattern parameter consists of regular expression language elements that symbolically describe the string to match. Normal ifadeler hakkında daha fazla bilgi için bkz. .NET Framework normal ifadeler ve normal Ifade dili-hızlı başvuru.For more information about regular expressions, see .NET Framework Regular Expressions and Regular Expression Language - Quick Reference.

MatchesYöntemi, döndürülen nesneyi doldurmak için geç değerlendirmeyi kullanır MatchCollection .The Matches method uses lazy evaluation to populate the returned MatchCollection object. Ve gibi bu koleksiyonun üyelerine erişme MatchCollection.Count MatchCollection.CopyTo , koleksiyonun hemen doldurulmasına neden olur.Accessing members of this collection such as MatchCollection.Count and MatchCollection.CopyTo causes the collection to be populated immediately. Yavaş değerlendirmeden yararlanmak için, foreach For Each Visual Basic Içinde C# ve... gibi bir yapı kullanarak koleksiyonu tekrarlayabilirsiniz Next .To take advantage of lazy evaluation, you should iterate the collection by using a construct such as foreach in C# and For Each...Next in Visual Basic.

Yavaş değerlendirmesinden dolayı Matches yöntemini çağırmak RegexMatchTimeoutException özel durum oluşturmaz.Because of its lazy evaluation, calling the Matches method does not throw a RegexMatchTimeoutException exception. Ancak, MatchCollection eşleşen bir işlem parametre tarafından belirtilen bu zaman aşımı aralığını aşarsa, bu yöntem tarafından döndürülen nesnede bir işlem gerçekleştirildiğinde bir özel durum oluşturulur matchTimeout .However, an exception is thrown when an operation is performed on the MatchCollection object returned by this method, if a matching operation exceeds this time-out interval specified by thematchTimeout parameter.

Arayanlara Notlar

matchTimeoutParametresini iki saniye gibi uygun bir değere ayarlamanızı öneririz.We recommend that you set the matchTimeout parameter to an appropriate value, such as two seconds. Belirterek zaman aşımlarını devre dışı bırakırsanız InfiniteMatchTimeout , normal ifade altyapısı biraz daha iyi performans sunar.If you disable time-outs by specifying InfiniteMatchTimeout, the regular expression engine offers slightly better performance. Ancak, zaman aşımlarını yalnızca aşağıdaki koşullarda devre dışı bırakmanız gerekir:However, you should disable time-outs only under the following conditions: -Normal bir ifade tarafından işlenen girdi bilinen ve güvenilir bir kaynaktan türetildiğinde veya statik metinden oluşur.- When the input processed by a regular expression is derived from a known and trusted source or consists of static text. Bu, kullanıcılar tarafından dinamik olarak girilen metni dışlar.This excludes text that has been dynamically input by users.

-Normal ifade deseninin, eşleşmelerin, eşleşmelerin ve yakın eşleşmelerin etkili bir şekilde işlemesini sağlamak için tamamen test edilmiştir.- When the regular expression pattern has been thoroughly tested to ensure that it efficiently handles matches, non-matches, and near matches.

-Normal ifade deseninin, yakın bir eşleşme işlenirken aşırı geri izleme oluşmasına neden olan hiçbir dil öğesi içerdiğinde.- When the regular expression pattern contains no language elements that are known to cause excessive backtracking when processing a near match.

Ayrıca bkz.

Şunlara uygulanır