[javascript] 전방탐색과 후방탐색을 활용한 정규 표현식

정규 표현식은 문자열에서 패턴을 찾거나 대체하는 데 사용됩니다. 특히, 전방탐색후방탐색은 특정 패턴 앞뒤에 다른 패턴이 오는지를 확인하는 데 유용합니다.

전방탐색(Positive Lookahead)

전방탐색은 패턴을 검색할 때, 해당 패턴 다음에 특정 패턴이 나오는지 확인합니다. 이때 확인만 하고 실제 매칭되는 문자열을 반환하지는 않습니다.

예를 들어, 다음과 같이 전방탐색을 사용하여 특정 패턴 뒤에 특정 패턴이 오는 경우를 찾을 수 있습니다.

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

위 예제에서 (?=orange)는 “orange” 다음에 다른 단어가 오는지 확인하는 전방탐색을 의미합니다.

후방탐색(Negative Lookbehind)

후방탐색은 패턴을 검색할 때, 해당 패턴 앞에 특정 패턴이 나오지 않는지 확인합니다. 이 역시 확인만 하고 실제 매칭되는 문자열을 반환하지는 않습니다.

다음은 후방탐색을 사용하여 특정 패턴 앞에 다른 패턴이 오지 않는 경우를 찾는 예제입니다.

const result = "apple banana orange".match(/\b(?!banana\b)\w+/g);
console.log(result);  // ['apple', 'orange']

위 코드에서 \b(?!banana\b)는 “banana” 이전에 다른 단어가 오는지 확인하는 후방탐색입니다.

전방탐색과 후방탐색을 사용하면 더 정교한 정규 표현식을 작성할 수 있습니다. 이러한 기능을 통해 특정 패턴의 앞 뒤에 조건을 추가할 수 있습니다.

위에 설명한 내용은 JavaScript를 기반으로 한 것이며, 정규 표현식 언어에 따라 문법이 다를 수 있습니다.

참고: MDN Web Docs 정규표현식