[javascript] 정규 표현식에서의 긍정, 부정적 전방탐색

정규 표현식(Regex)은 문자열의 패턴을 표현하고, 검색하거나 대체하는 등의 작업에 사용되는 강력한 도구입니다. 정규 표현식은 전방탐색(lookahead)을 통해 특정 패턴이 뒤따라오는지를 확인할 수 있습니다. 이 포스트에서는 정규 표현식에서의 긍정적 전방탐색(positive lookahead)과 부정적 전방탐색(negative lookahead)에 대해 알아보겠습니다.

긍정적 전방탐색 (Positive Lookahead)

긍정적 전방탐색은 특정 패턴이 뒤따라오는 경우에만 일치하는 패턴을 찾습니다. 긍정적 전방탐색은 (?=...)으로 표현하며, 다음과 같은 예제를 통해 살펴볼 수 있습니다.

const text = "apple orange banana";
const pattern = /\w+(?=\sorange)/;
const result = text.match(pattern);
console.log(result); // ["apple"]

위 예제에서 /\w+(?=\sorange)/ 패턴은 “orange”가 뒤따라오는 경우에만 패턴이 일치하도록 설정되어 있습니다. 따라서 “apple”만이 결과로 반환됩니다.

부정적 전방탐색 (Negative Lookahead)

부정적 전방탐색은 특정 패턴이 뒤따라오지 않는 경우에만 일치하는 패턴을 찾습니다. 부정적 전방탐색은 (?!...)으로 표현하며, 다음과 같은 예제를 통해 살펴볼 수 있습니다.

const text = "apple orange banana";
const pattern = /\w+(?!\sorange)/;
const result = text.match(pattern);
console.log(result); // ["orange", "banana"]

위 예제에서 /\w+(?!\sorange)/ 패턴은 “orange”가 뒤따라오지 않는 경우에만 패턴이 일치하도록 설정되어 있습니다. 따라서 “orange”와 “banana”가 결과로 반환됩니다.

정규 표현식에서의 전방탐색은 패턴을 더욱 정교하게 제어하고 원하는 결과를 얻기 위한 강력한 도구로 활용될 수 있습니다.

마무리

이 포스트에서는 정규 표현식에서의 긍정적 전방탐색과 부정적 전방탐색에 대해 알아보았습니다. 이러한 전방탐색을 효과적으로 활용하여 원하는 패턴을 보다 정확하게 찾아내는 데에 도움이 됩니다.

더 많은 정보를 얻고 싶다면 MDN web docs를 참고하시기 바랍니다.