## 종류
### 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