## 종류 ### Positive Lookahead - `X(?=Y)` 기호를 사용한다. - 뒤에 Y가 붙는 경우에만 X를 찾는다. ```js regex = /.+(?=:\/\/)/ 'https://example.com'.replace(regex, 'abc') // abc://example.com 'http://example.com'.replace(regex, 'abc') // abc://example.com ``` ### Negative Lookahead - `X(?!Y)` 기호를 사용한다. - 뒤에 Y가 붙지 않는 경우에만 X를 찾는다. ```js regex = /\d(?!달러)/ '1달러 1원'.replace(regex, 'abc') // 1달러 abc원 '2달러 2원'.replace(regex, 'abc') // 2달러 abc원 ``` ### Positive Lookbehind - `(?<=Y)X` 기호를 사용한다. - 앞에 Y가 있는 경우에만 X를 찾는다. ```js regex = /(?<=\$)\d/ 'A: $1 #1'.replace(regex, 'abc') // A: $abc #1 'B: $2 #2'.replace(regex, 'abc') // B: $abc #2 ``` ### Negative Lookbehind - `(?<!Y)X` 기호를 사용한다. - 앞에 Y가 있지 않은 경우에만 X를 찾는다. ```js regex = /(?<!\$)\d/ 'A: $1 #1'.replace(regex, 'abc') // A: $1 #abc 'B: $2 #2'.replace(regex, 'abc') // B: $2 #abc ``` ## 주의할 점 - Lookbehind는 사파리처럼 V8이 아닌 브라우저에서는 지원하지 않는다. #regexp