![[reg] LookAround](/_next/image?url=%2Fimages%2Fempty.png&w=2048&q=75)
0
목차
09. 전방탐색과 후방탐색
전후방탐색(lookaround) 언제쓸까?
전방탐색 - 앞으로 찾기
부정형 전후방탐색
09. 전방탐색과 후방탐색
2022년 9월 9일전후방탐색(lookaround) 언제쓸까?
텍스트 자체를 찾기 보다는 어디서 텍스트를 찾을때 표시하는 표현식을 쓰고 싶을때 사용
📌 전방탐색은 모든 주요 정규표현식에서 지원하지만 후방탐색을 광범위하게 지원하지 x (자바스크립트는 지원 x)
| 표현식 | 설명 |
| ?= | 전방탐색(lookahead) |
| ?<= | 후방탐색(lookbehind) |
전방탐색 - 앞으로 찾기
- 하위표현식과 같은 형식으로 작성
- 전방탐색(lookahead) 패턴은 일치 영역을 발견해도 그 값을 반환하지 않는 패턴을 말함
URL에서 프로토콜의 위치 추출하기(전방탐색)
- 예시
http://www.google.com
| 대입식 | 결과 |
.+(?=:) | http://www.google.com |
📌 여기서 콜론(:)이 일치하지 않는 것을 눈여겨 봐야함(소비하지 않는다)
📌 실제로 결과를 반환하지만 반환된 문자의 길이가 항상 0 임 -> 전방탐색을 흔히 제로폭(zero-width) 으로 부르기도 함
📌 모든 하위 표현식 앞쪽에 단순히 ?=를 붙이기만 하면됨
📌 후방탐색은 전방탐색과 사용 방법이 같다.
달러($)값 제외하고 찾기(후방탐색)
- 예시
ABC01 : $23.45
| 대입식 | 결과 |
(?<=\$)[0-9.]+ | ABC01 : $23.45 |
📌 전방탐색 패턴은 마침표(.) & 더하기(+) 를 포함하여 텍스트의 길이를 다양하게 일치 시킬수 있음(매우동적) 📌 후방탐색 패턴은 보통 일치시킬 텍스트의 길이를 고정해야함
부정형 전후방탐색
| 종류 | 설명 |
(?=) | 긍정형 전방탐색 |
(?!) | 부정형 전방탐색 |
(?<=) | 긍정형 후방탐색 |
(?<!) | 부정형 후방탐색 |
달러($)뒤 숫자가 아닌 숫자 찾기(부정형 후방탐색)
- 예시
I paid $30 for 100 apples
| 대입식 | 결과 |
\b(?<!$)\d+\b | I paid $30 for 100 apples |
🔑 \b는 단어 경계를 지정한다.