뭔가 앞에 옴 주장, 포함 없이
(?<=...) 는 lookahead 의 거울: "현재 위치에서, lookbehind 안의 패턴이 이 위치 *바로 앞* 텍스트 매칭." 같은 zero-width semantic — 매칭된 텍스트가 캡처에 안 들어감.
고전 사용: 마커 뒤 값 추출
'$' 뒤 가격 추출: (?<=\$)\d+(\.\d+)?. Lookbehind 가 '$' 앞에 있다 주장; 실제 매칭은 숫자만. 없으면 '$19.99' 캡처하고 코드에서 '$' 슬라이스.
같은 패턴이 어떤 prefix 마커든 동작: 'user_' 뒤 사용자 ID 추출, 'on ' 뒤 날짜 추출, X 안 포함하고 X-뒤-거 추출.
너비 제약 (HUGE)
대부분 엔진이 lookbehind 패턴을 fixed-width 로 요구 — 안의 모든 대안이 같은 글자 수 매칭해야.
- Java, .NET, Python
re: Fixed-width 만.(?<=cat)동작 (3 글자);(?<=cat|elephant)실패 또는 잘못 동작 가능. - Python
regex모듈, PCRE 8+: Variable-width 허용. - JavaScript: ES2018 부터 variable-width.
- RE2 / Go: Lookbehind 아예 미지원.
이게 정규식에서 가장 분열된 기능. Lookbehind 의존하기 전에 항상 본인 엔진 docs 확인.