Regex.Matches 메서드

정의

입력 문자열에 있는 정규식을 모두 검색하고 일치 항목을 모두 반환합니다.Searches an input string for all occurrences of a regular expression and returns all the matches.

오버로드

Matches(String)

지정된 입력 문자열에 있는 정규식을 모두 검색합니다.Searches the specified input string for all occurrences of a regular expression.

Matches(String, Int32)

문자열의 지정된 시작 위치에서 시작하여 지정된 입력 문자열에 있는 정규식을 모두 검색합니다.Searches the specified input string for all occurrences of a regular expression, beginning at the specified starting position in the string.

Matches(String, String)

지정된 입력 문자열에서 지정된 정규식을 모두 검색합니다.Searches the specified input string for all occurrences of a specified regular expression.

Matches(String, String, RegexOptions)

지정된 일치 옵션을 사용하여 지정된 입력 문자열에서 지정된 정규식을 모두 검색합니다.Searches the specified input string for all occurrences of a specified regular expression, using the specified matching options.

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.

Matches(String)

지정된 입력 문자열에 있는 정규식을 모두 검색합니다.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

매개 변수

input
String

일치 항목을 검색할 문자열입니다.The string to search for a match.

반환

검색에서 찾은 Match 개체의 컬렉션입니다.A collection of the Match objects found by the search. 일치 항목이 없으면 메서드가 빈 컬렉션 개체를 반환합니다.If no matches are found, the method returns an empty collection object.

예외

inputnull입니다.input is null.

예제

다음 예제에서는 Matches(String) 메서드를 사용 하 여 "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

정규식 패턴 \b\w+es\b는 다음 테이블과 같이 정의됩니다.The regular expression pattern \b\w+es\b is defined as shown in the following table.

패턴Pattern DescriptionDescription
\b 단어 경계에서 일치 항목 찾기를 시작합니다.Begin the match at a word boundary.
\w+ 하나 이상의 단어 문자를 찾습니다.Match one or more word characters.
es 리터럴 문자열 "es"을 찾습니다.Match the literal string "es".
\b 단어 경계에서 일치 항목 찾기를 끝냅니다.End the match at a word boundary.

설명

Matches(String) 메서드는 단일 일치 대신 입력 문자열에서 찾은 모든 일치 항목에 대 한 정보를 반환 한다는 점을 제외 하 고 Match(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. 다음 코드는 동일 합니다.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  

컬렉션 일치만을 포함 하 고 첫 번째 비-일치에서 종료 합니다.The collection includes only matches and terminates at the first non-match.

Matches(String) 메서드 검색에서 Regex 클래스 생성자 중 하나를 호출 하 여 정의 하는 정규식 패턴입니다.The regular expression pattern for which the Matches(String) method searches is defined by the call to one of the Regex class constructors. 정규식 패턴을 구성할 수 있는 요소에 대 한 자세한 내용은 정규식 언어-빠른 참조를 참조 하세요.For more information about the elements that can form a regular expression pattern, see Regular Expression Language - Quick Reference.

Matches 메서드는 지연 계산을 사용 하 여 반환 된 MatchCollection 개체를 채웁니다.The Matches method uses lazy evaluation to populate the returned MatchCollection object. MatchCollection.CountMatchCollection.CopyTo와 같이이 컬렉션의 멤버에 액세스 하면 컬렉션이 즉시 채워집니다.Accessing members of this collection such as MatchCollection.Count and MatchCollection.CopyTo causes the collection to be populated immediately. 지연 계산을 활용 하려면 foreach C# 및 For Each...와 같은 구문을 사용 하 여 컬렉션을 반복 해야NextTo take advantage of lazy evaluation, you should iterate the collection by using a construct such as foreach in C# and For EachNext Visual Basicin Visual Basic.

지연 계산으로 인해 Matches(String) 메서드를 호출 하면 RegexMatchTimeoutException 예외가 throw 되지 않습니다.Because of its lazy evaluation, calling the Matches(String) method does not throw a RegexMatchTimeoutException exception. 그러나이 메서드가 반환 하는 MatchCollection 개체에 대해 작업을 수행 하는 경우에는 MatchTimeout 속성이 Regex.InfiniteMatchTimeout 없고 일치 작업이 시간 제한 간격을 초과 하는 경우 예외가 throw 됩니다.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.

추가 정보

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:
 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

매개 변수

input
String

일치 항목을 검색할 문자열입니다.The string to search for a match.

startat
Int32

검색을 시작 하는 입력된 문자열에서 문자 위치입니다.The character position in the input string at which to start the search.

반환

검색에서 찾은 Match 개체의 컬렉션입니다.A collection of the Match objects found by the search. 일치 항목이 없으면 메서드가 빈 컬렉션 개체를 반환합니다.If no matches are found, the method returns an empty collection object.

예외

inputnull입니다.input is null.

startat이 0보다 작거나 input의 길이보다 큰 경우startat is less than zero or greater than the length of input.

예제

다음 예제에서는 Match(String) 메서드를 사용 하 여 "es"로 끝나는 문장의 첫 번째 단어를 찾은 다음 Matches(String, Int32) 메서드를 호출 하 여 "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

정규식 패턴 \b\w+es\b는 다음 테이블과 같이 정의됩니다.The regular expression pattern \b\w+es\b is defined as shown in the following table.

패턴Pattern DescriptionDescription
\b 단어 경계에서 일치 항목 찾기를 시작합니다.Begin the match at a word boundary.
\w+ 하나 이상의 단어 문자를 찾습니다.Match one or more word characters.
es 리터럴 문자열 "es"을 찾습니다.Match the literal string "es".
\b 단어 경계에서 일치 항목 찾기를 끝냅니다.End the match at a word boundary.

설명

Matches(String, Int32) 메서드는 단일 일치 대신 입력 문자열에서 찾은 모든 일치 항목에 대 한 정보를 반환 한다는 점을 제외 하 고 Match(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. 다음 코드는 동일 합니다.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) 메서드 검색에서 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. 정규식 패턴을 구성할 수 있는 요소에 대 한 자세한 내용은 정규식 언어-빠른 참조를 참조 하세요.For more information about the elements that can form a regular expression pattern, see Regular Expression Language - Quick Reference.

Matches 메서드는 지연 계산을 사용 하 여 반환 된 MatchCollection 개체를 채웁니다.The Matches method uses lazy evaluation to populate the returned MatchCollection object. MatchCollection.CountMatchCollection.CopyTo와 같이이 컬렉션의 멤버에 액세스 하면 컬렉션이 즉시 채워집니다.Accessing members of this collection such as MatchCollection.Count and MatchCollection.CopyTo causes the collection to be populated immediately. 지연 계산을 활용 하려면 foreach C# 및 For Each...와 같은 구문을 사용 하 여 컬렉션을 반복 해야NextTo take advantage of lazy evaluation, you should iterate the collection by using a construct such as foreach in C# and For EachNext Visual Basicin Visual Basic.

지연 계산으로 인해 Matches(String, Int32) 메서드를 호출 하면 RegexMatchTimeoutException 예외가 throw 되지 않습니다.Because of its lazy evaluation, calling the Matches(String, Int32) method does not throw a RegexMatchTimeoutException exception. 그러나이 메서드가 반환 하는 MatchCollection 개체에 대해 작업을 수행 하는 경우에는 MatchTimeout 속성이 Regex.InfiniteMatchTimeout 없고 일치 작업이 시간 제한 간격을 초과 하는 경우 예외가 throw 됩니다.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.

추가 정보

Matches(String, String)

지정된 입력 문자열에서 지정된 정규식을 모두 검색합니다.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

매개 변수

input
String

일치 항목을 검색할 문자열입니다.The string to search for a match.

pattern
String

일치시킬 정규식 패턴입니다.The regular expression pattern to match.

반환

검색에서 찾은 Match 개체의 컬렉션입니다.A collection of the Match objects found by the search. 일치 항목이 없으면 메서드가 빈 컬렉션 개체를 반환합니다.If no matches are found, the method returns an empty collection object.

예외

정규식 구문 분석 오류가 발생했습니다.A regular expression parsing error occurred.

input 또는 patternnull인 경우input or pattern is null.

예제

다음 예에서는 Matches(String, String) 메서드를 사용 하 여 "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

정규식 패턴 \b\w+es\b는 다음 테이블과 같이 정의됩니다.The regular expression pattern \b\w+es\b is defined as shown in the following table.

패턴Pattern DescriptionDescription
\b 단어 경계에서 일치 항목 찾기를 시작합니다.Begin the match at a word boundary.
\w+ 하나 이상의 단어 문자를 찾습니다.Match one or more word characters.
es 리터럴 문자열 "es"을 찾습니다.Match the literal string "es".
\b 단어 경계에서 일치 항목 찾기를 끝냅니다.End the match at a word boundary.

설명

Matches(String, String) 메서드는 단일 일치 대신 입력 문자열에서 찾은 모든 일치 항목에 대 한 정보를 반환 한다는 점을 제외 하 고 Match(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. 다음 코드는 동일 합니다.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  

정적 Matches 메서드는 지정 된 정규식 패턴을 사용 하 여 Regex 개체를 생성 하 고 Matches인스턴스 메서드를 호출 하는 것과 같습니다.The static Matches methods are equivalent to constructing a Regex object with the specified regular expression pattern and calling the instance method Matches.

pattern 매개 변수는 일치 하는 문자열을 설명 하는 기호로 정규식 언어 요소로 구성 됩니다.The pattern parameter consists of regular expression language elements that symbolically describe the string to match. 정규식에 대 한 자세한 내용은 .NET Framework 정규식정규식 언어-빠른 참조를 참조 하세요.For more information about regular expressions, see .NET Framework Regular Expressions and Regular Expression Language - Quick Reference.

Matches 메서드는 지연 계산을 사용 하 여 반환 된 MatchCollection 개체를 채웁니다.The Matches method uses lazy evaluation to populate the returned MatchCollection object. MatchCollection.CountMatchCollection.CopyTo와 같이이 컬렉션의 멤버에 액세스 하면 컬렉션이 즉시 채워집니다.Accessing members of this collection such as MatchCollection.Count and MatchCollection.CopyTo causes the collection to be populated immediately. 지연 계산을 활용 하려면 foreach C# 및 For Each...와 같은 구문을 사용 하 여 컬렉션을 반복 해야NextTo take advantage of lazy evaluation, you should iterate the collection by using a construct such as foreach in C# and For EachNext Visual Basicin Visual Basic.

지연 계산으로 인해 Matches(String, String) 메서드를 호출 하면 RegexMatchTimeoutException 예외가 throw 되지 않습니다.Because of its lazy evaluation, calling the Matches(String, String) method does not throw a RegexMatchTimeoutException exception. 그러나 작업을 수행 하면 예외가 throw 됩니다는 MatchCollection 시간 제한 간격을 현재 애플리케이션 도메인 및 일치 작업의 "REGEX_DEFAULT_MATCH_TIMEOUT" 속성에 의해 정의 된 경우이 메서드에서 반환 된 개체 이 시간 제한 간격을 초과합니다.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.

호출자 참고

이 메서드는 호출 되는 애플리케이션 도메인의 기본 제한 시간 값에 해당 간격이 지난 후 시간이 합니다.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. 애플리케이션 도메인에 값에 대 한 제한 시간 값을 정의 되지 않은 경우 InfiniteMatchTimeout, 메서드 시간 초과 방지 하는는 데 사용 됩니다.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. 여러 패턴 일치를 검색 하는 데 권장 되는 정적 메서드는 시간 제한 간격을 지정할 수 있는 Matches(String, String, RegexOptions, TimeSpan)입니다.The recommended static method for retrieving multiple pattern matches is Matches(String, String, RegexOptions, TimeSpan), which lets you specify the time-out interval.

추가 정보

Matches(String, String, RegexOptions)

지정된 일치 옵션을 사용하여 지정된 입력 문자열에서 지정된 정규식을 모두 검색합니다.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

매개 변수

input
String

일치 항목을 검색할 문자열입니다.The string to search for a match.

pattern
String

일치시킬 정규식 패턴입니다.The regular expression pattern to match.

options
RegexOptions

일치 옵션을 지정하는 열거형 값의 비트 조합입니다.A bitwise combination of the enumeration values that specify options for matching.

반환

검색에서 찾은 Match 개체의 컬렉션입니다.A collection of the Match objects found by the search. 일치 항목이 없으면 메서드가 빈 컬렉션 개체를 반환합니다.If no matches are found, the method returns an empty collection object.

예외

정규식 구문 분석 오류가 발생했습니다.A regular expression parsing error occurred.

input 또는 patternnull인 경우input or pattern is null.

optionsRegexOptions 값의 유효한 비트 조합이 아닙니다.options is not a valid bitwise combination of RegexOptions values.

예제

다음 예제에서는 Matches(String, String) 메서드를 호출 하 여 "es"로 끝나는 문장의 단어를 식별 한 다음 Matches(String, String, RegexOptions) 메서드를 호출 하 여 입력 문자열과 패턴의 대/소문자를 구분 하지 않는 비교를 수행 합니다.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. 출력에서 볼 수 있듯이 두 메서드는 다른 결과 반환 합니다.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

정규식 패턴 \b\w+es\b는 다음 테이블과 같이 정의됩니다.The regular expression pattern \b\w+es\b is defined as shown in the following table.

패턴Pattern DescriptionDescription
\b 단어 경계에서 일치 항목 찾기를 시작합니다.Begin the match at a word boundary.
\w+ 하나 이상의 단어 문자를 찾습니다.Match one or more word characters.
es 리터럴 문자열 "es"을 찾습니다.Match the literal string "es".
\b 단어 경계에서 일치 항목 찾기를 끝냅니다.End the match at a word boundary.

설명

Matches(String, String, RegexOptions) 메서드는 단일 일치 대신 입력 문자열에서 찾은 모든 일치 항목에 대 한 정보를 반환 한다는 점을 제외 하 고 Match(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. 다음 코드는 동일 합니다.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  

정적 Matches 메서드는 지정 된 정규식 패턴을 사용 하 여 Regex 개체를 생성 하 고 Matches인스턴스 메서드를 호출 하는 것과 같습니다.The static Matches methods are equivalent to constructing a Regex object with the specified regular expression pattern and calling the instance method Matches.

pattern 매개 변수는 일치 하는 문자열을 설명 하는 기호로 정규식 언어 요소로 구성 됩니다.The pattern parameter consists of regular expression language elements that symbolically describe the string to match. 정규식에 대 한 자세한 내용은 .NET Framework 정규식정규식 언어-빠른 참조를 참조 하세요.For more information about regular expressions, see .NET Framework Regular Expressions and Regular Expression Language - Quick Reference.

Matches 메서드는 지연 계산을 사용 하 여 반환 된 MatchCollection 개체를 채웁니다.The Matches method uses lazy evaluation to populate the returned MatchCollection object. MatchCollection.CountMatchCollection.CopyTo와 같이이 컬렉션의 멤버에 액세스 하면 컬렉션이 즉시 채워집니다.Accessing members of this collection such as MatchCollection.Count and MatchCollection.CopyTo causes the collection to be populated immediately. 지연 계산을 활용 하려면 foreach C# 및 For Each...와 같은 구문을 사용 하 여 컬렉션을 반복 해야NextTo take advantage of lazy evaluation, you should iterate the collection by using a construct such as foreach in C# and For EachNext Visual Basicin Visual Basic.

지연 계산으로 인해 Matches(String, String) 메서드를 호출 하면 RegexMatchTimeoutException 예외가 throw 되지 않습니다.Because of its lazy evaluation, calling the Matches(String, String) method does not throw a RegexMatchTimeoutException exception. 그러나 작업을 수행 하면 예외가 throw 됩니다는 MatchCollection 시간 제한 간격을 현재 애플리케이션 도메인 및 일치 작업의 "REGEX_DEFAULT_MATCH_TIMEOUT" 속성에 의해 정의 된 경우이 메서드에서 반환 된 개체 이 시간 제한 간격을 초과합니다.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.

호출자 참고

이 메서드는 호출 되는 애플리케이션 도메인의 기본 제한 시간 값에 해당 간격이 지난 후 시간이 합니다.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. 애플리케이션 도메인에 값에 대 한 제한 시간 값을 정의 되지 않은 경우 InfiniteMatchTimeout, 메서드 시간 초과 방지 하는는 데 사용 됩니다.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. 여러 패턴 일치를 검색 하는 데 권장 되는 정적 메서드는 제한 시간 간격을 설정할 수 있는 Matches(String, String, RegexOptions, TimeSpan)입니다.The recommended static method for retrieving multiple pattern matches is Matches(String, String, RegexOptions, TimeSpan), which lets you set the time-out interval.

추가 정보

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.

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

매개 변수

input
String

일치 항목을 검색할 문자열입니다.The string to search for a match.

pattern
String

일치시킬 정규식 패턴입니다.The regular expression pattern to match.

options
RegexOptions

일치 옵션을 지정하는 열거형 값의 비트 조합입니다.A bitwise combination of the enumeration values that specify options for matching.

matchTimeout
TimeSpan

시간 제한 간격이거나, 메서드에 시간 제한이 없어야 함을 나타내는 InfiniteMatchTimeout입니다.A time-out interval, or InfiniteMatchTimeout to indicate that the method should not time out.

반환

검색에서 찾은 Match 개체의 컬렉션입니다.A collection of the Match objects found by the search. 일치 항목이 없으면 메서드가 빈 컬렉션 개체를 반환합니다.If no matches are found, the method returns an empty collection object.

예외

정규식 구문 분석 오류가 발생했습니다.A regular expression parsing error occurred.

input 또는 patternnull인 경우input or pattern is null.

optionsRegexOptions 값의 유효한 비트 조합이 아닙니다.options is not a valid bitwise combination of RegexOptions values.

또는-or- matchTimeout이 음수, 0 또는 약 24일보다 큰 경우matchTimeout is negative, zero, or greater than approximately 24 days.

예제

다음 예에서는 Matches(String, String, RegexOptions, TimeSpan) 메서드를 호출 하 여 "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". 그런 다음 Matches(String, String, RegexOptions, TimeSpan) 메서드를 호출 하 여 입력 문자열과 패턴의 대/소문자를 구분 하지 않는 비교를 수행 합니다.It then calls the Matches(String, String, RegexOptions, TimeSpan) method to perform a case-insensitive comparison of the pattern with the input string. 두 경우 모두에서 시간 제한 간격을 1 초로 설정 됩니다.In both cases, the time-out interval is set to one second. 출력에서 볼 수 있듯이 두 메서드는 다른 결과 반환 합니다.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

정규식 패턴 \b\w+es\b는 다음 테이블과 같이 정의됩니다.The regular expression pattern \b\w+es\b is defined as shown in the following table.

패턴Pattern DescriptionDescription
\b 단어 경계에서 일치 항목 찾기를 시작합니다.Begin the match at a word boundary.
\w+ 하나 이상의 단어 문자를 찾습니다.Match one or more word characters.
es 리터럴 문자열 "es"을 찾습니다.Match the literal string "es".
\b 단어 경계에서 일치 항목 찾기를 끝냅니다.End the match at a word boundary.

설명

Matches(String, String, RegexOptions, TimeSpan) 메서드는 단일 일치 대신 입력 문자열에서 찾은 모든 일치 항목에 대 한 정보를 반환 한다는 점을 제외 하 고 Match(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. 다음 코드는 동일 합니다.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   

정적 Matches 메서드는 지정 된 정규식 패턴을 사용 하 여 Regex 개체를 생성 하 고 Matches인스턴스 메서드를 호출 하는 것과 같습니다.The static Matches methods are equivalent to constructing a Regex object with the specified regular expression pattern and calling the instance method Matches.

pattern 매개 변수는 일치 하는 문자열을 설명 하는 기호로 정규식 언어 요소로 구성 됩니다.The pattern parameter consists of regular expression language elements that symbolically describe the string to match. 정규식에 대 한 자세한 내용은 .NET Framework 정규식정규식 언어-빠른 참조를 참조 하세요.For more information about regular expressions, see .NET Framework Regular Expressions and Regular Expression Language - Quick Reference.

Matches 메서드는 지연 계산을 사용 하 여 반환 된 MatchCollection 개체를 채웁니다.The Matches method uses lazy evaluation to populate the returned MatchCollection object. MatchCollection.CountMatchCollection.CopyTo와 같이이 컬렉션의 멤버에 액세스 하면 컬렉션이 즉시 채워집니다.Accessing members of this collection such as MatchCollection.Count and MatchCollection.CopyTo causes the collection to be populated immediately. 지연 계산을 활용 하려면 foreach C# 및 For Each...와 같은 구문을 사용 하 여 컬렉션을 반복 해야NextTo take advantage of lazy evaluation, you should iterate the collection by using a construct such as foreach in C# and For EachNext Visual Basicin Visual Basic.

지연 계산으로 인해 Matches 메서드를 호출 하면 RegexMatchTimeoutException 예외가 throw 되지 않습니다.Because of its lazy evaluation, calling the Matches method does not throw a RegexMatchTimeoutException exception. 그러나이 메서드가 반환 하는 MatchCollection 개체에 대해 작업을 수행 하는 경우에는 예외가 throw 됩니다. 일치 작업이matchTimeout 매개 변수로 지정 된이 시간 제한 간격을 초과 하는 경우에는 예외가 throw 됩니다.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.

호출자 참고

matchTimeout 매개 변수를 적절 한 값 (예: 2 초)으로 설정 하는 것이 좋습니다.We recommend that you set the matchTimeout parameter to an appropriate value, such as two seconds. InfiniteMatchTimeout를 지정 하 여 제한 시간을 사용 하지 않도록 설정 하는 경우 정규식 엔진은 약간 더 나은 성능을 제공 합니다.If you disable time-outs by specifying InfiniteMatchTimeout, the regular expression engine offers slightly better performance. 그러나 다음 조건 에서만 제한 시간을 비활성화 해야 합니다.However, you should disable time-outs only under the following conditions: -정규식에 의해 처리 된 입력 알려져 있고 신뢰할 수 있는 원본에서 파생 되거나는 정적 텍스트로 구성 됩니다.- When the input processed by a regular expression is derived from a known and trusted source or consists of static text. 이 제외 된 동적으로 사용자가 입력 텍스트입니다.This excludes text that has been dynamically input by users.

-정규식 패턴을 효율적으로 처리 되도록 철저히 테스트 하는 경우 일치 하지 않는, 일치 하 고 가까운 일치 합니다.- When the regular expression pattern has been thoroughly tested to ensure that it efficiently handles matches, non-matches, and near matches.

-정규식 패턴과 거의 일치 하는 처리 하는 경우 과도 한 역 추적을 일으키는 것으로 알려진 언어 요소가 없는 포함 합니다.- When the regular expression pattern contains no language elements that are known to cause excessive backtracking when processing a near match.

추가 정보

적용 대상