문자를 소비하지 않고 위치를 검사해
\b는 이미 만난 너비 0 검사야. 단어 문자와 비단어 문자 사이인지 확인하지만 어떤 문자도 매칭 결과에 넣지 않아. 검사 대상은 문자가 아니라 현재 위치야.
전후방 탐색은 이 생각을 더 일반화해. (?=...)는 현재 위치 뒤의 텍스트가 조건과 맞는지 확인한 다음 커서를 그대로 둬. 검사에 사용한 문자는 소비되지 않으므로 뒤 패턴이 같은 위치에서 계속 매칭해.
왜 쓸까
주변 텍스트는 조건으로만 필요하고 결과에는 넣고 싶지 않을 때 유용해. \d+(?=kg)는 뒤에 kg가 붙은 숫자를 찾지만 결과에는 숫자만 담아.
네 가지 형태
(?=...)— 긍정형 전방 탐색: 뒤에 조건이 와야 해.(?!...)— 부정형 전방 탐색: 뒤에 조건이 오면 안 돼.(?<=...)— 긍정형 후방 탐색: 앞에 조건이 있어야 해.(?<!...)— 부정형 후방 탐색: 앞에 조건이 있으면 안 돼.
다음 강부터 각 형태를 차례로 연습할 거야.