Match 클래스

정의

정규식으로 찾은 단일 일치 항목의 결과를 나타냅니다.Represents the results from a single regular expression match.

public ref class Match : System::Text::RegularExpressions::Group
public class Match : System.Text.RegularExpressions.Group
[System.Serializable]
public class Match : System.Text.RegularExpressions.Group
type Match = class
    inherit Group
Public Class Match
Inherits Group
상속
특성

예제

다음 예에서는 Console\.Write(Line)?정규식을 사용 합니다.The following examples use the regular expression Console\.Write(Line)?. 정규식은 다음과 같이 해석됩니다.The regular expression is interpreted as follows:

콘솔\입니다. 기록Console\.Write "Console.Write"라는 문자열을 찾습니다.Match the string "Console.Write". "." 문자와 일치 하는 와일드 카드로 하는 것이 아니라 리터럴 마침표로 해석 됩니다 있도록 문자는 이스케이프 됩니다.Note that the "." character is escaped so that it is interpreted as a literal period rather than as a wildcard that matches any character.
(줄)?(Line)? "Line"이라는 0개 또는 1개의 문자열을 찾습니다.Match zero or one occurrence of the string "Line".

예제 1Example 1

다음 예제에서는 Regex.Matches(String, String) 메서드를 호출 하 여 입력 문자열에서 모든 패턴 일치 항목을 검색 합니다.The following example calls the Regex.Matches(String, String) method to retrieve all pattern matches in an input string. 그런 다음 반환 된 MatchCollection 개체의 Match 개체를 반복 하 여 각 일치 항목에 대 한 정보를 표시 합니다.It then iterates the Match objects in the returned MatchCollection object to display information about each match.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string input = "int[] values = { 1, 2, 3 };\n" +
                     "for (int ctr = values.GetLowerBound(1); ctr <= values.GetUpperBound(1); ctr++)\n" +
                     "{\n" +
                     "   Console.Write(values[ctr]);\n" +
                     "   if (ctr < values.GetUpperBound(1))\n" +
                     "      Console.Write(\", \");\n" +
                     "}\n" +
                     "Console.WriteLine();\n";   
      
      string pattern = @"Console\.Write(Line)?";
      MatchCollection matches = Regex.Matches(input, pattern);
      foreach (Match match in matches)
         Console.WriteLine("'{0}' found in the source code at position {1}.",  
                           match.Value, match.Index);
   }
}
// The example displays the following output:
//    'Console.Write' found in the source code at position 115.
//    'Console.Write' found in the source code at position 184.
//    'Console.WriteLine' found in the source code at position 211.
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim input As String = "Dim values() As Integer = { 1, 2, 3 }" & vbCrLf & _
                            "For ctr As Integer = values.GetLowerBound(1) To values.GetUpperBound(1)" & vbCrLf & _
                            "   Console.Write(values(ctr))" & vbCrLf & _
                            "   If ctr < values.GetUpperBound(1) Then Console.Write("", "")" & vbCrLf & _
                            "Next" & vbCrLf & _
                            "Console.WriteLine()"   
      Dim pattern As String = "Console\.Write(Line)?"
      Dim matches As MatchCollection = Regex.Matches(input, pattern)
      For Each match As Match In matches
         Console.WriteLine("'{0}' found in the source code at position {1}.", _ 
                           match.Value, match.Index)       
      Next                            
   End Sub
End Module
' The example displays the following output:
'    'Console.Write' found in the source code at position 115.
'    'Console.Write' found in the source code at position 184.
'    'Console.WriteLine' found in the source code at position 211.

예제 2Example 2

다음 예제에서는 Match(String, String)NextMatch 메서드를 호출 하 여 한 번에 하나의 일치 항목을 검색 합니다.The following example calls the Match(String, String) and NextMatch methods to retrieve one match at a time.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string input = "int[] values = { 1, 2, 3 };\n" +
                     "for (int ctr = values.GetLowerBound(1); ctr <= values.GetUpperBound(1); ctr++)\n" +
                     "{\n" +
                     "   Console.Write(values[ctr]);\n" +
                     "   if (ctr < values.GetUpperBound(1))\n" +
                     "      Console.Write(\", \");\n" +
                     "}\n" +
                     "Console.WriteLine();\n";   
      string pattern = @"Console\.Write(Line)?";
      Match match = Regex.Match(input, pattern);
      while (match.Success)
      {
         Console.WriteLine("'{0}' found in the source code at position {1}.",  
                           match.Value, match.Index);
         match = match.NextMatch();
      }
   }
}
// The example displays the following output:
//    'Console.Write' found in the source code at position 115.
//    'Console.Write' found in the source code at position 184.
//    'Console.WriteLine' found in the source code at position 211.
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim input As String = "Dim values() As Integer = { 1, 2, 3 }" & vbCrLf & _
                            "For ctr As Integer = values.GetLowerBound(1) To values.GetUpperBound(1)" & vbCrLf & _
                            "   Console.Write(values(ctr))" & vbCrLf & _
                            "   If ctr < values.GetUpperBound(1) Then Console.Write("", "")" & vbCrLf & _
                            "Next" & vbCrLf & _
                            "Console.WriteLine()"   
      Dim pattern As String = "Console\.Write(Line)?"
      Dim match As Match = Regex.Match(input, pattern)
      Do While match.Success
         Console.WriteLine("'{0}' found in the source code at position {1}.", _ 
                           match.Value, match.Index)
         match = match.NextMatch()                  
      Loop                            
   End Sub
End Module
' The example displays the following output:
'    'Console.Write' found in the source code at position 115.
'    'Console.Write' found in the source code at position 184.
'    'Console.WriteLine' found in the source code at position 211.

설명

Match 개체는 변경할 수 없으며 public 생성자가 없습니다.The Match object is immutable and has no public constructor. Match 클래스의 인스턴스는 Regex.Match 메서드에서 반환 되 고 문자열에서 첫 번째 패턴 일치를 나타냅니다.An instance of the Match class is returned by the Regex.Match method and represents the first pattern match in a string. 이후 일치 항목은 Match.NextMatch 메서드에서 반환 된 개체로 Match 표시 됩니다.Subsequent matches are represented by Match objects returned by the Match.NextMatch method. 또한 Regex.Matches 메서드에서는 0 개 이상의 Match 개체로 구성 된 MatchCollection 개체를 반환 합니다.In addition, a MatchCollection object that consists of zero, one, or more Match objects is returned by the Regex.Matches method.

Regex.Matches 메서드가 입력 문자열에서 정규식 패턴과 일치 하지 않으면 빈 MatchCollection 개체를 반환 합니다.If the Regex.Matches method fails to match a regular expression pattern in an input string, it returns an empty MatchCollection object. 그런 다음에서 C# foreach 구문을 사용 하거나 Visual Basic의 For Each 구문을 사용 하 여 컬렉션을 반복할 수 있습니다.You can then use a foreach construct in C# or a For Each construct in Visual Basic to iterate the collection.

Regex.Match 메서드가 정규식 패턴과 일치 하지 않으면 Match.Empty와 같은 Match 개체를 반환 합니다.If the Regex.Match method fails to match the regular expression pattern, it returns a Match object that is equal to Match.Empty. Success 속성을 사용 하 여 일치가 성공 했는지 여부를 확인할 수 있습니다.You can use the Success property to determine whether the match was successful. 다음 예에서는 이러한 내용을 보여 줍니다.The following example provides an illustration.

// Search for a pattern that is not found in the input string.
string pattern = "dog";
string input = "The cat saw the other cats playing in the back yard.";
Match match = Regex.Match(input, pattern);
if (match.Success )
   // Report position as a one-based integer.
   Console.WriteLine("'{0}' was found at position {1} in '{2}'.", 
                     match.Value, match.Index + 1, input);
else
   Console.WriteLine("The pattern '{0}' was not found in '{1}'.",
                     pattern, input);
' Search for a pattern that is not found in the input string.
Dim pattern As String = "dog"
Dim input As String = "The cat saw the other cats playing in the back yard."
Dim match As Match = Regex.Match(input, pattern)
If match.Success Then
   ' Report position as a one-based integer.
   Console.WriteLine("'{0}' was found at position {1} in '{2}'.", _ 
                     match.Value, match.Index + 1, input)
Else
   Console.WriteLine("The pattern '{0}' was not found in '{1}'.", _
                     pattern, input)
End If

패턴 일치가 성공 하면 Value 속성은 일치 하는 부분 문자열을 포함 하 고, Index 속성은 입력 문자열에서 일치 하는 부분 문자열의 0부터 시작 하는 위치를 나타내며, Length 속성은 입력 문자열에서 일치 하는 부분 문자열의 길이를 나타냅니다.If a pattern match is successful, the Value property contains the matched substring, the Index property indicates the zero-based starting position of the matched substring in the input string, and the Length property indicates the length of matched substring in the input string.

단일 일치가 여러 캡처링 그룹을 포함할 수 있기 때문에 Match에는 GroupCollection를 반환 하는 Groups 속성이 있습니다.Because a single match can involve multiple capturing groups, Match has a Groups property that returns the GroupCollection. Match 인스턴스 자체는 전체 일치를 나타내는 Match.Groups[0] (Visual Basic의Match.Groups(0))에서 컬렉션의 첫 번째 개체와 동일 합니다.The Match instance itself is equivalent to the first object in the collection, at Match.Groups[0] (Match.Groups(0) in Visual Basic), which represents the entire match. 다음과 같은 방법으로 일치 항목에서 캡처된 그룹에 액세스할 수 있습니다.You can access the captured groups in a match in the following ways:

  • foreach (C#) 또는 For Each (Visual Basic) 구문을 사용 하 여 GroupCollection 개체의 멤버를 반복할 수 있습니다.You can iterate the members of the GroupCollection object by using a foreach (C#) or For Each (Visual Basic) construct.

  • GroupCollection.Item[Int32] 속성을 사용 하 여 캡처링 그룹 수를 기준으로 그룹을 검색할 수 있습니다.You can use the GroupCollection.Item[Int32] property to retrieve groups by the number of the capturing group. 인스턴스 Regex.GetGroupNumbers 메서드를 호출 하 여 정규식에 있는 번호가 매겨진 그룹을 확인할 수 있습니다.Note that you can determine which numbered groups are present in a regular expression by calling the instance Regex.GetGroupNumbers method.

  • GroupCollection.Item[String] 속성을 사용 하 여 캡처링 그룹의 이름을 기준으로 그룹을 검색할 수 있습니다.You can use the GroupCollection.Item[String] property to retrieve groups by the name of the capturing group. 인스턴스 Regex.GetGroupNames() 메서드를 호출 하 여 정규식에 있는 명명 된 그룹을 확인할 수 있습니다.Note that you can determine which named groups are present in a regular expression by calling the instance Regex.GetGroupNames() method.

속성

Captures

안쪽-왼쪽 우선 순서로 캡처링 그룹을 사용하여 일치시킨 모든 캡처의 컬렉션을 가져옵니다. 정규식을 RightToLeft 옵션으로 수정한 경우에는 안쪽-오른쪽 우선 순서로 가져올 수 있습니다.Gets a collection of all the captures matched by the capturing group, in innermost-leftmost-first order (or innermost-rightmost-first order if the regular expression is modified with the RightToLeft option). 컬렉션에는 0 개 이상의 항목이 있을 수 있습니다.The collection may have zero or more items.

(다음에서 상속됨 Group)
Empty

빈 그룹을 가져옵니다.Gets the empty group. 일치 항목을 찾지 못하는 모든 경우에는 이 빈 일치 항목이 반환됩니다.All failed matches return this empty match.

Groups

정규식으로 일치시킨 그룹의 컬렉션을 가져옵니다.Gets a collection of groups matched by the regular expression.

Index

원래 문자열에서 캡처된 부분 문자열의 첫 문자가 있는 위치입니다.The position in the original string where the first character of the captured substring is found.

(다음에서 상속됨 Capture)
Length

캡처된 부분 문자열의 길이 가져옵니다.Gets the length of the captured substring.

(다음에서 상속됨 Capture)
Name

현재 인스턴스로 표시되는 캡처링 그룹의 이름을 반환합니다.Returns the name of the capturing group represented by the current instance.

(다음에서 상속됨 Group)
Success

일치가 성공 여부를 나타내는 값을 가져옵니다.Gets a value indicating whether the match is successful.

(다음에서 상속됨 Group)
Value

입력된 문자열에서 캡처된 부분 문자열을 가져옵니다.Gets the captured substring from the input string.

(다음에서 상속됨 Capture)

메서드

Equals(Object)

지정한 개체가 현재 개체와 같은지를 확인합니다.Determines whether the specified object is equal to the current object.

(다음에서 상속됨 Object)
GetHashCode()

기본 해시 함수로 작동합니다.Serves as the default hash function.

(다음에서 상속됨 Object)
GetType()

현재 인스턴스의 Type을 가져옵니다.Gets the Type of the current instance.

(다음에서 상속됨 Object)
MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.Creates a shallow copy of the current Object.

(다음에서 상속됨 Object)
NextMatch()

마지막 일치 항목이 끝나는 위치(마지막으로 일치한 문자 다음 문자)에서 시작하여 다음 일치 항목에 대한 결과와 함께 새로운 Match 개체를 반환합니다.Returns a new Match object with the results for the next match, starting at the position at which the last match ended (at the character after the last matched character).

Result(String)

지정된 바꾸기 패턴의 확장을 반환합니다.Returns the expansion of the specified replacement pattern.

Synchronized(Match)

여러 스레드 간에 공유하기에 적합하고 제공된 인스턴스와 동등한 Match 인스턴스를 반환합니다.Returns a Match instance equivalent to the one supplied that is suitable to share between multiple threads.

ToString()

Value 속성을 호출하여 입력 문자열로부터 캡처된 하위 문자열을 검색합니다.Retrieves the captured substring from the input string by calling the Value property.

(다음에서 상속됨 Capture)

적용 대상

추가 정보