역행 검사

업데이트: 2007년 11월

정규식에 선택적 또는 대체 일치 패턴을 사용하면 정규식 엔진은 입력 문자열을 검사하는 동안, 가능한 모든 일치 항목을 찾기 위해 하나 이상의 방향으로 분기할 수 있습니다. 따라서 첫 번째 방향에서 일치 항목을 찾지 못하면 엔진은 입력 문자열에서 분기한 지점으로 돌아가 다른 일치 항목을 검사합니다.

예를 들어, 회색을 의미하는 두 가지 철자인 gray와 grey를 찾도록 디자인된 정규식에서 대체 문자(|)를 사용하여 두 철자를 모두 찾을 수 있는 정규식인 gr(a|e)y를 만듭니다. greengraygrowngrey입력 문자열에 이 정규식을 적용하면 엔진은 먼저 gray와 일치하는 항목을 찾습니다. 입력 문자열의 처음 두 개 문자(gr)를 찾지만 그 뒤에 e(green)가 오므로 실패합니다. 그런 다음 대체 문자 바로 앞에 있는 성공적인 일치 항목인 r로 돌아가서 grey를 찾습니다. 그러나 green의 두 번째 e에 도달했을 때 다시 실패합니다. 엔진은 계속하여 이러한 방식으로 검색을 진행하여 입력 문자열에 포함된 gray와 grey 두 단어를 찾습니다.

다음 코드 예제에서는 이 정규식을 만들어 입력 문자열에 적용하는 방법을 보여 줍니다.

Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      ' Define strings: "gray" and "grey".
      Dim r As New Regex("gr(a|e)y") 
      Dim m As MatchCollection = r.Matches("greengraygrowngrey")
      Console.WriteLine("Number of groups found: {0}", m.Count)
   End Sub
End Module
' The example displays the following output:
'      Number of groups found: 2
using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
       // Define strings: "gray" and "grey".
       Regex r = new Regex("gr(a|e)y"); 
       MatchCollection m = r.Matches("greengraygrowngrey");
       Console.WriteLine("Number of groups found: {0}", m.Count); 
    }
}
// The example displays the following output:
//      Number of groups found: 2

참고 항목

기타 리소스

.NET Framework 정규식