System.Text.RegularExpressions.Regex.Match 메서드

이 문서에서는 이 API에 대한 참조 설명서에 대한 추가 설명서를 제공합니다.

이 메서드는 Match(String, Int32) 입력 문자열에서 문자 위치 이후부터 정규식 패턴과 startat 일치하는 첫 번째 부분 문자열을 반환합니다. 메서드가 검색하는 Match(String, Int32) 정규식 패턴은 클래스 생성자 중 하나에 대한 호출에 Regex 의해 정의됩니다. 정규식 패턴을 작성하는 데 사용되는 언어 요소에 대한 자세한 내용은 정규식 언어 - 빠른 참조를 참조 하세요.

startat 매개 변수

필요에 따라 매개 변수를 사용하여 startat 문자열의 시작 위치를 지정할 수 있습니다. 문자열에서 이전에 startat 시작된 일치 항목은 무시됩니다. 시작 위치를 지정하지 않으면 검색이 기본 위치(왼쪽에서 오른쪽 검색의 input 왼쪽 끝) 및 오른쪽에서 왼쪽 검색의 input 오른쪽 끝에서 시작됩니다. 시작에도 startat불구하고 반환된 일치 항목의 인덱스는 문자열의 시작에 상대적입니다.

정규식 엔진은 이전에 startat시작된 일치 항목을 반환하지 않지만 앞에 있는 문자열 startat을 무시하지는 않습니다. 즉, 앵커 또는 lookbehind 어설션과 같은 어설션은 여전히 입력 전체에 적용됩니다. 예를 들어 다음 코드에는 입력 문자열에서 5의 인덱스 이전에 startat 발생하더라도 충족되는 lookbehind 어설션이 있는 패턴이 포함됩니다.

using System;
using System.Text.RegularExpressions;

namespace Examples
{
    public class Example3
    {
        public static void Main()
        {
            string input = "Zip code: 98052";
            var regex = new Regex(@"(?<=Zip code: )\d{5}");
            Match match = regex.Match(input, 5);
            if (match.Success)
                Console.WriteLine("Match found: {0}", match.Value);
        }
    }
}

// This code prints the following output:
// Match found: 98052

  • 패턴이 앵커로 ^ 시작하지만 startat 0보다 크면 인덱스 0에서 시작하도록 제한 ^ 되므로 단일 줄 검색에서 일치하는 항목이 발견되지 않습니다.
  • 앵커\G 충족되는 위치startat입니다. 따라서 문자열의 특정 문자 위치에서 정확하게 시작되도록 일치 항목을 제한하려는 경우 왼쪽에서 오른쪽 패턴의 정규식을 \G 왼쪽에 고정합니다. 이렇게 하면 일치 항목이 정확하게 startat 시작되도록 제한됩니다(또는 여러 일치 항목이 필요한 경우 일치 항목이 연속됨).

오른쪽에서 왼쪽으로 검색

오른쪽에서 왼쪽 검색, 즉 정규식 패턴이 옵션으로 RegexOptions.RightToLeft 생성될 때 다음과 같은 방식으로 동작합니다.

  • 스캔은 반대 방향으로 이동하고 패턴은 뒤로(오른쪽)에서 앞면(왼쪽)으로 일치합니다.
  • 기본 시작 위치는 입력 문자열의 오른쪽 끝입니다.
  • 지정한 경우 startat 오른쪽에서 왼쪽으로 스캔이 문자 startat 에서 시작됩니다( 1(아님 startat).
  • 앵커가 \G 패턴의 오른쪽 끝에 지정되면 (첫 번째) 일치 항목이 정확히 -1로 startat 끝나도록 제한합니다.

오른쪽에서 왼쪽으로 검색하는 방법에 대한 자세한 내용은 오른쪽에서 왼쪽 모드를 참조하세요.

일치하는 항목을 찾을 수 있는지 확인

반환 Match 된 개체 Success 의 속성 값을 검사 정규식 패턴이 입력 문자열에서 발견되었는지 여부를 확인할 수 있습니다. 일치 항목이 발견되면 반환 Match 된 개체의 Value 속성에는 정규식 패턴과 일치하는 부분 문자열 input 이 포함됩니다. 일치하는 항목이 없으면 해당 값은 .입니다 String.Empty.

첫 번째 또는 여러 일치 항목

이 메서드는 정규식 패턴과 일치하는 문자 위치 또는 그 뒤의 startatinput 첫 번째 부분 문자열을 반환합니다. 반환된 Match 개체의 Match.NextMatch 메서드를 반복적으로 호출하여 후속 일치 항목을 검색할 수 있습니다. 메서드를 호출하여 단일 메서드 호출에서 모든 일치 항목을 검색할 Regex.Matches(String, Int32) 수도 있습니다.

시간 제한 예외

RegexMatchTimeoutException 일치 작업의 실행 시간이 생성자가 지정한 제한 시간 간격을 초과하면 예외가 Regex.Regex(String, RegexOptions, TimeSpan) throw됩니다. 생성자를 호출할 때 시간 제한 간격을 설정 하지 않으면, 작업이 있는 애플리케이션 도메인에 설정 된 제한 시간 값을 초과 하면 예외가 throw 되는 Regex 개체가 만들어집니다. 제한 시간에 정의 된 경우는 Regex 생성자 호출 또는 애플리케이션 도메인의 속성 또는 시간 제한 값이 Regex.InfiniteMatchTimeout, 예외가 throw 되지 않습니다.