Export (0) Print
Expand All

Regex.Matches Method

Searches an input string for all occurrences of a regular expression and returns all the matches.

This member is overloaded. For complete information about this member, including syntax, usage, and examples, click a name in the overload list.

  Name Description
Public method Matches(String) Searches the specified input string for all occurrences of a regular expression.
Public method Matches(String, Int32) Searches the specified input string for all occurrences of a regular expression, beginning at the specified starting position in the string.
Public method Static member Matches(String, String) Searches the specified input string for all occurrences of a specified regular expression.
Public method Static member Matches(String, String, RegexOptions) Searches the specified input string for all occurrences of a specified regular expression, using the specified matching options.
Public method Static member Matches(String, String, RegexOptions, TimeSpan) Searches the specified input string for all occurrences of a specified regular expression, using the specified matching options and time-out interval.
Top

Notes to Callers

When a match attempt is repeated by calling the Matches method, the regular expression engine gives empty matches special treatment. Usually, the regular expression engine begins the search for the next match exactly where the previous match left off. However, after an empty match, the regular expression engine advances by one character before trying the next match. This behavior guarantees that the regular expression engine will progress through the string. Otherwise, because an empty match does not result in any forward movement, the next match would start in exactly the same place as the previous match, and it would match the same empty string repeatedly.

In the following example, the regular expression pattern a* searches for zero or more occurrences of the letter "a" in the string "abaabb". As the output from the example shows, the resulting MatchCollection object contains six Match objects. The first match attempt finds the first "a". The second match starts exactly where the first match ends, before the first b; it finds zero occurrences of "a" and returns an empty string. The third match does not begin exactly where the second match ended, because the second match returned an empty string. Instead, it begins one character later, after the first "b". The third match finds two occurrences of "a" and returns "aa". The fourth match attempt begins where the third match ended, before the second "b", and returns an empty string. The fifth match attempt again advances one character so that it begins before the third "b" and returns an empty string. The sixth match begins after the last "b" and returns an empty string again.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string pattern = "a*";
      string input = "abaabb";

      foreach (Match m in Regex.Matches(input, pattern)) 
         Console.WriteLine("'{0}' found at index {1}.", 
                           m.Value, m.Index);
   }
}
// The example displays the following output: 
//       'a' found at index 0. 
//       '' found at index 1. 
//       'aa' found at index 2. 
//       '' found at index 4. 
//       '' found at index 5. 
//       '' found at index 6.
Show:
© 2014 Microsoft