뭔가 따라옴 주장, 소비 없이
(?=...) 는 "현재 위치에서, lookahead 안의 패턴이 매칭" 의미. 엔진이 확인하지만 소비 X. 메인 패턴의 lookahead 뒤 거가 같은 위치에서 계속.
실전 사용 셋
따라오는 거로 매칭 제약. \d+(?= dollars) 가 "dollars" 따라올 때만 숫자 매칭. 주의: 'dollars' 가 매칭 성공에 필수지만 캡처된 값에 안 들어감.
같은 위치에 여러 요구 stack. (?=.*[a-z])(?=.*[A-Z])(?=.*\d).{8,} — "시작에서, 셋 다 참이어야: 소문자 포함, 대문자 포함, 숫자 포함, AND 8+ 글자." 각 lookahead 가 별개 제약, 다 같은 위치에 anchor.
경계 포함 없이 split 위치 찾기. 마커 *앞에* split 하고 다음 청크에 마커 유지하고 싶을 때 re.split 와 유용.
커서가 안 움직임
결정적 멘탈 모델: lookahead 성공 후 엔진이 lookahead *전* 같은 위치. 패턴에서 lookahead 뒤 작성된 거가 그 위치에서 매칭 시작. 그래서 \d+(?=kg)kg 가 숫자 매칭 + 'kg' 다시 매칭 (커서가 lookahead 콘텐츠 지나가지 않았으니까).