REPUBLIC OF”를 제외하고 “OF”가 포함된 줄을 찾기 위한 정규 표현식을 작성할 때, Lookahead와 Lookbehind 같은 정규 표현식의 고급 기능을 사용할 수 있습니다. 이러한 기능을 활용하여 “REPUBLIC OF”가 아닌 “OF”를 포함하는 문자열을 매칭할 수 있는 패턴을 구성할 수 있습니다.
다음은 “REPUBLIC OF”를 포함하지 않으면서 “OF”를 포함하는 줄을 찾기 위한 정규 표현식의 예입니다:
1 2 3 |
(?<!REPUBLIC )\bOF\b |
이 정규 표현식은 다음과 같이 작동합니다:
- (?<!REPUBLIC )는 Negative Lookbehind로, “REPUBLIC ” 문자열이 “OF” 앞에 오지 않는 경우에만 매칭을 허용합니다.
- \bOF\b는 “OF”라는 단어가 경계에 위치한 경우를 찾습니다. \b는 단어 경계를 나타내므로, “OF”가 독립된 단어로 존재할 때 매칭됩니다.
C#에서 이 정규 표현식을 사용하는 예제 코드는 다음과 같습니다:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
using System; using System.Text.RegularExpressions; class Program { static void Main() { string text = "This is OF example.\nREPUBLIC OF example should not match.\nOnly OF will match."; // "REPUBLIC OF"를 제외하고 "OF"를 포함하는 줄 찾기 var pattern = @"(?<!REPUBLIC )\bOF\b"; var matches = Regex.Matches(text, pattern); foreach (Match match in matches) { Console.WriteLine($"Match found: {match.Value}"); } } } |