Regex.Matches Regex.Matches Regex.Matches Regex.Matches Method

Definicja

Wyszukuje ciąg wejściowy dla wszystkich wystąpień wyrażenia regularnego i zwraca wszystkie dopasowania.Searches an input string for all occurrences of a regular expression and returns all the matches.

Przeciążenia

Matches(String) Matches(String) Matches(String) Matches(String)

Przeszukuje określony ciąg wejściowy dla wszystkich wystąpień wyrażenia regularnego.Searches the specified input string for all occurrences of a regular expression.

Matches(String, Int32) Matches(String, Int32) Matches(String, Int32) Matches(String, Int32)

Wyszukuje określony ciąg wejściowy dla wszystkich wystąpień wyrażenia regularnego, zaczynając od określonej pozycji początkowej w ciągu.Searches the specified input string for all occurrences of a regular expression, beginning at the specified starting position in the string.

Matches(String, String) Matches(String, String) Matches(String, String) Matches(String, String)

Wyszukuje określony ciąg wejściowy dla wszystkich wystąpień określonego wyrażenia regularnego.Searches the specified input string for all occurrences of a specified regular expression.

Matches(String, String, RegexOptions) Matches(String, String, RegexOptions) Matches(String, String, RegexOptions) Matches(String, String, RegexOptions)

Wyszukuje określony ciąg wejściowy dla wszystkich wystąpień określonego wyrażenia regularnego przy użyciu określonych pasujących opcji.Searches the specified input string for all occurrences of a specified regular expression, using the specified matching options.

Matches(String, String, RegexOptions, TimeSpan) Matches(String, String, RegexOptions, TimeSpan) Matches(String, String, RegexOptions, TimeSpan) Matches(String, String, RegexOptions, TimeSpan)

Przeszukuje określony ciąg wejściowy dla wszystkich wystąpień określonego wyrażenia regularnego przy użyciu określonych zgodnych opcji i interwału limitu czasu.Searches the specified input string for all occurrences of a specified regular expression, using the specified matching options and time-out interval.

Matches(String) Matches(String) Matches(String) Matches(String)

Przeszukuje określony ciąg wejściowy dla wszystkich wystąpień wyrażenia regularnego.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

Parametry

input
String String String String

Ciąg, aby wyszukać dopasowanie.The string to search for a match.

Zwraca

Kolekcja Match obiektów znalezionych w wyniku wyszukiwania.A collection of the Match objects found by the search. Jeśli nie zostaną znalezione żadne dopasowania, metoda zwraca pusty obiekt kolekcji.If no matches are found, the method returns an empty collection object.

Wyjątki

Przykłady

Poniższy przykład używa Matches(String) metody do identyfikowania dowolnego wyrazu w zdaniu kończącym się na "es".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

Wzorzec \b\w+es\b wyrażenia regularnego jest zdefiniowany, jak pokazano w poniższej tabeli.The regular expression pattern \b\w+es\b is defined as shown in the following table.

WzorzecPattern OpisDescription
\b Rozpoczyna dopasowanie na granicy wyrazu.Begin the match at a word boundary.
\w+ Dopasowuje co najmniej jeden znak słowa.Match one or more word characters.
es Pasuje do ciągu literału "es".Match the literal string "es".
\b Kończy dopasowanie na granicy wyrazu.End the match at a word boundary.

Uwagi

Metoda jest podobna Match(String) do metody, z tą różnicą, że zwraca informacje o wszystkich dopasowań znalezionych w ciągu wejściowym zamiast jednego dopasowania. Matches(String)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. Odpowiada to następującemu kodowi: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  

Kolekcja zawiera tylko dopasowania i kończy się przy pierwszym niezgodności.The collection includes only matches and terminates at the first non-match.

Wzorzec wyrażenia regularnego, dla którego Matches(String) Metoda wyszukiwania jest definiowana przez wywołanie jednego Regex z konstruktorów klas.The regular expression pattern for which the Matches(String) method searches is defined by the call to one of the Regex class constructors. Aby uzyskać więcej informacji o elementach, które mogą tworzyć wzorzec wyrażenia regularnego, zobacz temat Regular Expression Language-Quick Reference.For more information about the elements that can form a regular expression pattern, see Regular Expression Language - Quick Reference.

Metoda używa oceny z opóźnieniem do wypełnienia zwracanego MatchCollection obiektu. MatchesThe Matches method uses lazy evaluation to populate the returned MatchCollection object. Uzyskiwanie dostępu do elementów członkowskich tej MatchCollection.Count kolekcji MatchCollection.CopyTo , takich jak i powoduje natychmiastowe wypełnienie kolekcji.Accessing members of this collection such as MatchCollection.Count and MatchCollection.CopyTo causes the collection to be populated immediately. Aby skorzystać z oceny z opóźnieniem, należy wykonać iterację kolekcji przy użyciu konstrukcji, takiej foreach jak C# w For Eachi...NextTo take advantage of lazy evaluation, you should iterate the collection by using a construct such as foreach in C# and For EachNext w Visual Basic.in Visual Basic.

Ze względu na jego ocenę z opóźnieniem wywołanie Matches(String) metody nie powoduje RegexMatchTimeoutException wygenerowania wyjątku.Because of its lazy evaluation, calling the Matches(String) method does not throw a RegexMatchTimeoutException exception. Jednakże wyjątek jest zgłaszany, gdy operacja jest wykonywana na MatchCollection obiekcie zwracanym przez tę metodę, MatchTimeout Jeśli właściwość nie Regex.InfiniteMatchTimeout jest i zgodna operacja przekracza interwał limitu czasu.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.

Zobacz też

Matches(String, Int32) Matches(String, Int32) Matches(String, Int32) Matches(String, Int32)

Wyszukuje określony ciąg wejściowy dla wszystkich wystąpień wyrażenia regularnego, zaczynając od określonej pozycji początkowej w ciągu.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

Parametry

input
String String String String

Ciąg, aby wyszukać dopasowanie.The string to search for a match.

startat
Int32 Int32 Int32 Int32

Pozycja znaku w ciągu wejściowym, w którym ma zostać rozpoczęte wyszukiwanie.The character position in the input string at which to start the search.

Zwraca

Kolekcja Match obiektów znalezionych w wyniku wyszukiwania.A collection of the Match objects found by the search. Jeśli nie zostaną znalezione żadne dopasowania, metoda zwraca pusty obiekt kolekcji.If no matches are found, the method returns an empty collection object.

Wyjątki

startatjest mniejsza od zera lub większa niż długość input.startat is less than zero or greater than the length of input.

Przykłady

W poniższym przykładzie zastosowano Match(String) metodę w celu znalezienia pierwszego wyrazu w zdaniu kończącym się ciągiem "es", a następnie Matches(String, Int32) wywołanie metody w celu zidentyfikowania wszelkich dodatkowych wyrazów kończących się na "es".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

Wzorzec \b\w+es\b wyrażenia regularnego jest zdefiniowany, jak pokazano w poniższej tabeli.The regular expression pattern \b\w+es\b is defined as shown in the following table.

WzorzecPattern OpisDescription
\b Rozpoczyna dopasowanie na granicy wyrazu.Begin the match at a word boundary.
\w+ Dopasowuje co najmniej jeden znak słowa.Match one or more word characters.
es Pasuje do ciągu literału "es".Match the literal string "es".
\b Kończy dopasowanie na granicy wyrazu.End the match at a word boundary.

Uwagi

Metoda jest podobna Match(String, Int32) do metody, z tą różnicą, że zwraca informacje o wszystkich dopasowań znalezionych w ciągu wejściowym zamiast jednego dopasowania. Matches(String, Int32)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. Odpowiada to następującemu kodowi: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  

Wzorzec wyrażenia regularnego, dla którego Matches(String, Int32) Metoda wyszukiwania jest definiowana przez wywołanie jednego Regex z konstruktorów klas.The regular expression pattern for which the Matches(String, Int32) method searches is defined by the call to one of the Regex class constructors. Aby uzyskać więcej informacji o elementach, które mogą tworzyć wzorzec wyrażenia regularnego, zobacz temat Regular Expression Language-Quick Reference.For more information about the elements that can form a regular expression pattern, see Regular Expression Language - Quick Reference.

Metoda używa oceny z opóźnieniem do wypełnienia zwracanego MatchCollection obiektu. MatchesThe Matches method uses lazy evaluation to populate the returned MatchCollection object. Uzyskiwanie dostępu do elementów członkowskich tej MatchCollection.Count kolekcji MatchCollection.CopyTo , takich jak i powoduje natychmiastowe wypełnienie kolekcji.Accessing members of this collection such as MatchCollection.Count and MatchCollection.CopyTo causes the collection to be populated immediately. Aby skorzystać z oceny z opóźnieniem, należy wykonać iterację kolekcji przy użyciu konstrukcji, takiej foreach jak C# w For Eachi...NextTo take advantage of lazy evaluation, you should iterate the collection by using a construct such as foreach in C# and For EachNext w Visual Basic.in Visual Basic.

Ze względu na jego ocenę z opóźnieniem wywołanie Matches(String, Int32) metody nie powoduje RegexMatchTimeoutException wygenerowania wyjątku.Because of its lazy evaluation, calling the Matches(String, Int32) method does not throw a RegexMatchTimeoutException exception. Jednakże wyjątek jest zgłaszany, gdy operacja jest wykonywana na MatchCollection obiekcie zwracanym przez tę metodę, MatchTimeout Jeśli właściwość nie Regex.InfiniteMatchTimeout jest i zgodna operacja przekracza interwał limitu czasu.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.

Zobacz też

Matches(String, String) Matches(String, String) Matches(String, String) Matches(String, String)

Wyszukuje określony ciąg wejściowy dla wszystkich wystąpień określonego wyrażenia regularnego.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

Parametry

input
String String String String

Ciąg, aby wyszukać dopasowanie.The string to search for a match.

pattern
String String String String

Wzorzec wyrażenia regularnego do dopasowania.The regular expression pattern to match.

Zwraca

Kolekcja Match obiektów znalezionych w wyniku wyszukiwania.A collection of the Match objects found by the search. Jeśli nie zostaną znalezione żadne dopasowania, metoda zwraca pusty obiekt kolekcji.If no matches are found, the method returns an empty collection object.

Wyjątki

Wystąpił błąd podczas analizowania wyrażenia regularnego.A regular expression parsing error occurred.

inputlub pattern jest null.input or pattern is null.

Przykłady

Poniższy przykład używa Matches(String, String) metody do identyfikowania dowolnego wyrazu w zdaniu kończącym się ciągiem "es".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

Wzorzec \b\w+es\b wyrażenia regularnego jest zdefiniowany, jak pokazano w poniższej tabeli.The regular expression pattern \b\w+es\b is defined as shown in the following table.

WzorzecPattern OpisDescription
\b Rozpoczyna dopasowanie na granicy wyrazu.Begin the match at a word boundary.
\w+ Dopasowuje co najmniej jeden znak słowa.Match one or more word characters.
es Pasuje do ciągu literału "es".Match the literal string "es".
\b Kończy dopasowanie na granicy wyrazu.End the match at a word boundary.

Uwagi

Metoda jest podobna Match(String, String) do metody, z tą różnicą, że zwraca informacje o wszystkich dopasowań znalezionych w ciągu wejściowym zamiast jednego dopasowania. Matches(String, String)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. Odpowiada to następującemu kodowi: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  

Metody statyczne Matches są równoważne do konstruowania Regex obiektu z określonym wzorcem wyrażenia regularnego i wywoływania metody Matcheswystąpienia.The static Matches methods are equivalent to constructing a Regex object with the specified regular expression pattern and calling the instance method Matches.

pattern Parametr składa się z elementów języka wyrażenia regularnego, które tworzą symbolicznie ciąg do dopasowania.The pattern parameter consists of regular expression language elements that symbolically describe the string to match. Aby uzyskać więcej informacji na temat wyrażeń regularnych, zobacz .NET Framework wyrażeń regularnych i języka wyrażeń regularnych — skrócone informacje.For more information about regular expressions, see .NET Framework Regular Expressions and Regular Expression Language - Quick Reference.

Metoda używa oceny z opóźnieniem do wypełnienia zwracanego MatchCollection obiektu. MatchesThe Matches method uses lazy evaluation to populate the returned MatchCollection object. Uzyskiwanie dostępu do elementów członkowskich tej MatchCollection.Count kolekcji MatchCollection.CopyTo , takich jak i powoduje natychmiastowe wypełnienie kolekcji.Accessing members of this collection such as MatchCollection.Count and MatchCollection.CopyTo causes the collection to be populated immediately. Aby skorzystać z oceny z opóźnieniem, należy wykonać iterację kolekcji przy użyciu konstrukcji, takiej foreach jak C# w For Eachi...NextTo take advantage of lazy evaluation, you should iterate the collection by using a construct such as foreach in C# and For EachNext w Visual Basic.in Visual Basic.

Ze względu na jego ocenę z opóźnieniem wywołanie Matches(String, String) metody nie powoduje RegexMatchTimeoutException wygenerowania wyjątku.Because of its lazy evaluation, calling the Matches(String, String) method does not throw a RegexMatchTimeoutException exception. Jednakże wyjątek jest zgłaszany podczas wykonywania operacji na MatchCollection obiekcie zwróconym przez tę metodę, jeśli interwał limitu czasu jest zdefiniowany przez właściwość "REGEX_DEFAULT_MATCH_TIMEOUT" bieżącej domeny aplikacji i zgodną operację przekracza ten limit czasu.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.

Uwagi dotyczące wywoływania

Ta metoda przekroczy limit czasu, który jest równy domyślnemu limitowi wartości w domenie aplikacji, w której jest wywoływany.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. Jeśli wartość limitu czasu dla domeny aplikacji nie została zdefiniowana, wartość InfiniteMatchTimeout, która uniemożliwia metodę z przekroczenia limitu czasu, jest używana.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. Zalecaną metodą statyczną do pobierania dopasowania wielu wzorców Matches(String, String, RegexOptions, TimeSpan)jest, która umożliwia określenie interwału limitu czasu.The recommended static method for retrieving multiple pattern matches is Matches(String, String, RegexOptions, TimeSpan), which lets you specify the time-out interval.

Zobacz też

Matches(String, String, RegexOptions) Matches(String, String, RegexOptions) Matches(String, String, RegexOptions) Matches(String, String, RegexOptions)

Wyszukuje określony ciąg wejściowy dla wszystkich wystąpień określonego wyrażenia regularnego przy użyciu określonych pasujących opcji.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

Parametry

input
String String String String

Ciąg, aby wyszukać dopasowanie.The string to search for a match.

pattern
String String String String

Wzorzec wyrażenia regularnego do dopasowania.The regular expression pattern to match.

options
RegexOptions RegexOptions RegexOptions RegexOptions

Bitowa kombinacja wartości wyliczenia, które określają opcje do dopasowania.A bitwise combination of the enumeration values that specify options for matching.

Zwraca

Kolekcja Match obiektów znalezionych w wyniku wyszukiwania.A collection of the Match objects found by the search. Jeśli nie zostaną znalezione żadne dopasowania, metoda zwraca pusty obiekt kolekcji.If no matches are found, the method returns an empty collection object.

Wyjątki

Wystąpił błąd podczas analizowania wyrażenia regularnego.A regular expression parsing error occurred.

inputlub pattern jest null.input or pattern is null.

optionsnie jest prawidłową bitową kombinacją RegexOptions wartości.options is not a valid bitwise combination of RegexOptions values.

Przykłady

Poniższy przykład wywołuje Matches(String, String) metodę w celu zidentyfikowania dowolnego wyrazu w zdaniu kończącym się w "es", a następnie Matches(String, String, RegexOptions) wywołuje metodę, aby wykonać porównywanie bez uwzględniania wielkości liter wzorca z ciągiem wejściowym.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. Ponieważ dane wyjściowe są wyświetlane, dwie metody zwracają różne wyniki.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

Wzorzec \b\w+es\b wyrażenia regularnego jest zdefiniowany, jak pokazano w poniższej tabeli.The regular expression pattern \b\w+es\b is defined as shown in the following table.

WzorzecPattern OpisDescription
\b Rozpoczyna dopasowanie na granicy wyrazu.Begin the match at a word boundary.
\w+ Dopasowuje co najmniej jeden znak słowa.Match one or more word characters.
es Pasuje do ciągu literału "es".Match the literal string "es".
\b Kończy dopasowanie na granicy wyrazu.End the match at a word boundary.

Uwagi

Metoda jest podobna Match(String, String, RegexOptions) do metody, z tą różnicą, że zwraca informacje o wszystkich dopasowań znalezionych w ciągu wejściowym zamiast jednego dopasowania. Matches(String, String, RegexOptions)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. Odpowiada to następującemu kodowi: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  

Metody statyczne Matches są równoważne do konstruowania Regex obiektu z określonym wzorcem wyrażenia regularnego i wywoływania metody Matcheswystąpienia.The static Matches methods are equivalent to constructing a Regex object with the specified regular expression pattern and calling the instance method Matches.

pattern Parametr składa się z elementów języka wyrażenia regularnego, które tworzą symbolicznie ciąg do dopasowania.The pattern parameter consists of regular expression language elements that symbolically describe the string to match. Aby uzyskać więcej informacji na temat wyrażeń regularnych, zobacz .NET Framework wyrażeń regularnych i języka wyrażeń regularnych — skrócone informacje.For more information about regular expressions, see .NET Framework Regular Expressions and Regular Expression Language - Quick Reference.

Metoda używa oceny z opóźnieniem do wypełnienia zwracanego MatchCollection obiektu. MatchesThe Matches method uses lazy evaluation to populate the returned MatchCollection object. Uzyskiwanie dostępu do elementów członkowskich tej MatchCollection.Count kolekcji MatchCollection.CopyTo , takich jak i powoduje natychmiastowe wypełnienie kolekcji.Accessing members of this collection such as MatchCollection.Count and MatchCollection.CopyTo causes the collection to be populated immediately. Aby skorzystać z oceny z opóźnieniem, należy wykonać iterację kolekcji przy użyciu konstrukcji, takiej foreach jak C# w For Eachi...NextTo take advantage of lazy evaluation, you should iterate the collection by using a construct such as foreach in C# and For EachNext w Visual Basic.in Visual Basic.

Ze względu na jego ocenę z opóźnieniem wywołanie Matches(String, String) metody nie powoduje RegexMatchTimeoutException wygenerowania wyjątku.Because of its lazy evaluation, calling the Matches(String, String) method does not throw a RegexMatchTimeoutException exception. Jednakże wyjątek jest zgłaszany podczas wykonywania operacji na MatchCollection obiekcie zwróconym przez tę metodę, jeśli interwał limitu czasu jest zdefiniowany przez właściwość "REGEX_DEFAULT_MATCH_TIMEOUT" bieżącej domeny aplikacji i zgodną operację przekracza ten limit czasu.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.

Uwagi dotyczące wywoływania

Ta metoda przekroczy limit czasu, który jest równy domyślnemu limitowi wartości w domenie aplikacji, w której jest wywoływany.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. Jeśli wartość limitu czasu dla domeny aplikacji nie została zdefiniowana, wartość InfiniteMatchTimeout, która uniemożliwia metodę z przekroczenia limitu czasu, jest używana.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. Zalecaną metodą statyczną do pobierania dopasowania wielu wzorców Matches(String, String, RegexOptions, TimeSpan)jest, która umożliwia ustawienie interwału limitu czasu.The recommended static method for retrieving multiple pattern matches is Matches(String, String, RegexOptions, TimeSpan), which lets you set the time-out interval.

Zobacz też

Matches(String, String, RegexOptions, TimeSpan) Matches(String, String, RegexOptions, TimeSpan) Matches(String, String, RegexOptions, TimeSpan) Matches(String, String, RegexOptions, TimeSpan)

Przeszukuje określony ciąg wejściowy dla wszystkich wystąpień określonego wyrażenia regularnego przy użyciu określonych zgodnych opcji i interwału limitu czasu.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

Parametry

input
String String String String

Ciąg, aby wyszukać dopasowanie.The string to search for a match.

pattern
String String String String

Wzorzec wyrażenia regularnego do dopasowania.The regular expression pattern to match.

options
RegexOptions RegexOptions RegexOptions RegexOptions

Bitowa kombinacja wartości wyliczenia, które określają opcje do dopasowania.A bitwise combination of the enumeration values that specify options for matching.

matchTimeout
TimeSpan TimeSpan TimeSpan TimeSpan

Interwał limitu czasu lub InfiniteMatchTimeout wskazuje, że metoda nie powinna przekroczyć limitu czasu.A time-out interval, or InfiniteMatchTimeout to indicate that the method should not time out.

Zwraca

Kolekcja Match obiektów znalezionych w wyniku wyszukiwania.A collection of the Match objects found by the search. Jeśli nie zostaną znalezione żadne dopasowania, metoda zwraca pusty obiekt kolekcji.If no matches are found, the method returns an empty collection object.

Wyjątki

Wystąpił błąd podczas analizowania wyrażenia regularnego.A regular expression parsing error occurred.

inputlub pattern jest null.input or pattern is null.

optionsnie jest prawidłową bitową kombinacją RegexOptions wartości.options is not a valid bitwise combination of RegexOptions values.

—lub—-or- matchTimeoutjest ujemna, równa zero lub większa niż około 24 dni.matchTimeout is negative, zero, or greater than approximately 24 days.

Przykłady

Poniższy przykład wywołuje metodę, Matches(String, String, RegexOptions, TimeSpan) aby wykonać porównanie z uwzględnieniem wielkości liter, które dopasowuje dowolny wyraz w zdaniu kończącym się znakami "es".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". Następnie wywołuje metodę, Matches(String, String, RegexOptions, TimeSpan) aby wykonać porównywanie bez uwzględniania wielkości liter wzorca z ciągiem wejściowym.It then calls the Matches(String, String, RegexOptions, TimeSpan) method to perform a case-insensitive comparison of the pattern with the input string. W obu przypadkach interwał limitu czasu jest ustawiony na jedną sekundę.In both cases, the time-out interval is set to one second. Ponieważ dane wyjściowe są wyświetlane, dwie metody zwracają różne wyniki.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

Wzorzec \b\w+es\b wyrażenia regularnego jest zdefiniowany, jak pokazano w poniższej tabeli.The regular expression pattern \b\w+es\b is defined as shown in the following table.

WzorzecPattern OpisDescription
\b Rozpoczyna dopasowanie na granicy wyrazu.Begin the match at a word boundary.
\w+ Dopasowuje co najmniej jeden znak słowa.Match one or more word characters.
es Pasuje do ciągu literału "es".Match the literal string "es".
\b Kończy dopasowanie na granicy wyrazu.End the match at a word boundary.

Uwagi

Metoda jest podobna Match(String, String, RegexOptions, TimeSpan) do metody, z tą różnicą, że zwraca informacje o wszystkich dopasowań znalezionych w ciągu wejściowym zamiast jednego dopasowania. Matches(String, String, RegexOptions, TimeSpan)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. Odpowiada to następującemu kodowi: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   

Metody statyczne Matches są równoważne do konstruowania Regex obiektu z określonym wzorcem wyrażenia regularnego i wywoływania metody Matcheswystąpienia.The static Matches methods are equivalent to constructing a Regex object with the specified regular expression pattern and calling the instance method Matches.

pattern Parametr składa się z elementów języka wyrażenia regularnego, które tworzą symbolicznie ciąg do dopasowania.The pattern parameter consists of regular expression language elements that symbolically describe the string to match. Aby uzyskać więcej informacji na temat wyrażeń regularnych, zobacz .NET Framework wyrażeń regularnych i języka wyrażeń regularnych — skrócone informacje.For more information about regular expressions, see .NET Framework Regular Expressions and Regular Expression Language - Quick Reference.

Metoda używa oceny z opóźnieniem do wypełnienia zwracanego MatchCollection obiektu. MatchesThe Matches method uses lazy evaluation to populate the returned MatchCollection object. Uzyskiwanie dostępu do elementów członkowskich tej MatchCollection.Count kolekcji MatchCollection.CopyTo , takich jak i powoduje natychmiastowe wypełnienie kolekcji.Accessing members of this collection such as MatchCollection.Count and MatchCollection.CopyTo causes the collection to be populated immediately. Aby skorzystać z oceny z opóźnieniem, należy wykonać iterację kolekcji przy użyciu konstrukcji, takiej foreach jak C# w For Eachi...NextTo take advantage of lazy evaluation, you should iterate the collection by using a construct such as foreach in C# and For EachNext w Visual Basic.in Visual Basic.

Ze względu na jego ocenę z opóźnieniem wywołanie Matches metody nie powoduje RegexMatchTimeoutException wygenerowania wyjątku.Because of its lazy evaluation, calling the Matches method does not throw a RegexMatchTimeoutException exception. Jednakże wyjątek jest zgłaszany, gdy operacja jest wykonywana na MatchCollection obiekcie zwróconym przez tę metodę, jeśli zgodna operacja przekracza ten limit czasu określonymatchTimeout przez parametr.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.

Uwagi dotyczące wywoływania

Zalecamy ustawienie matchTimeout parametru na odpowiednią wartość, na przykład dwie sekundy.We recommend that you set the matchTimeout parameter to an appropriate value, such as two seconds. Jeśli wyłączysz limity czasu przez określenie InfiniteMatchTimeout, aparat wyrażeń regularnych oferuje nieco lepszą wydajność.If you disable time-outs by specifying InfiniteMatchTimeout, the regular expression engine offers slightly better performance. Należy jednak wyłączyć limity czasu tylko w następujących warunkach:However, you should disable time-outs only under the following conditions: — Gdy dane wejściowe przetwarzane przez wyrażenie regularne pochodzą od znanego i zaufanego źródła lub zawierają tekst statyczny.- When the input processed by a regular expression is derived from a known and trusted source or consists of static text. Wyklucza to tekst, który jest dynamicznie wprowadzany przez użytkowników.This excludes text that has been dynamically input by users.

-Kiedy wzorzec wyrażenia regularnego został dokładnie przetestowany w celu zapewnienia, że wydajnie obsługuje dopasowania, nie są dopasowań i blisko dopasowań.- When the regular expression pattern has been thoroughly tested to ensure that it efficiently handles matches, non-matches, and near matches.

-Kiedy wzorzec wyrażenia regularnego nie zawiera elementów języka, które są znane, aby spowodować nadmierne wycofywanie podczas przetwarzania blisko dopasowania.- When the regular expression pattern contains no language elements that are known to cause excessive backtracking when processing a near match.

Zobacz też

Dotyczy