0. 들어가며
전에 <모던 자바스크립트 Deep Dive> 를 읽으며 정규 표현식을 접하긴 했지만 외우진 않았다. 여러모로 쓰일 일이 많아 외워두려고 한다.
1. 자주 사용하는 메타 문자
| 표현식 | 의미 |
|---|---|
| ^X | 문자열이 X로 시작됨을 의미 |
| X$ | 문자열이 X로 끝남을 의미 |
| . | 임의의 한 문자를 의미 |
| X* | 문자 X가 0번 이상 반복됨을 의미 |
| X+ | 문자 X가 1번 이상 반복됨을 의미 |
| X? | 문자 X가 존재할 수도, 존재하지 않을 수도 있음을 의미 |
| X|Y | 문자 X 또는 Y 가 존재함을 의미 |
| (X) | 문자 X를 정규표현식 그룹으로 처리함을 의미 |
| X{n} | 문자 X가 n번 반복됨을 의미 |
| X{n,} | 문자 X가 n번 이상 반복됨을 의미 |
| X{n,m} | 문자 X가 n번 이상, m번 이하 반복됨을 의미 |
| [XY] | 문자 X 또는 문자 Y 중 하나임을 의미 |
| [^X] | 문자 X를 제외한 문자를 의미 |
| [A-Z] | A 부터 Z까지 문자를 의미 (범위) |
2. 자주 사용하는 문자 클래스
| 표기법 | 의미 |
|---|---|
| \d | 숫자 [0-9] |
| \D | 숫자가 아닌 것 [^0-9] |
| \s | 공백 문자 [\t\n\r\f\v] |
| \S | 공백 문자가 아닌 것 |
| \w | 문자 + 숫자 + 밑줄(_) [a-zA-Z0-9_] |
| \W | 문자 + 숫자 + 밑줄(_) 이 아닌 것 |
3. 자주 사용하는 Flag
| Flag | 의미 |
|---|---|
| g | Global 의 표현하며 대상 문자열내에 모든 패턴들을 검색하는 것을 의미한다. |
| i | Ignore case 를 표현하며 대상 문자열에 대해서 대/소문자를 식별하지 않는 것을 의미한다. |
| m | Multi line을 표현하며 대상 문자열이 다중 라인의 문자열인 경우에도 검색하는 것을 의미한다. |
4. 간단한 예시 - 집 전화번호
- 우리 나라의 지역 번호는 다음과 같다.
- 02, 031, 032, 033, 041, 042, 043, 044, 051, 052, 053, 054, 055, 061, 062, 063, 064
-
이를 정규 표현식으로 나타내면 다음과 같다.
0(2|(3[1-3])|(4[1-4])|(5[1-5])|(6[1-4]))-[0-9]{3}-[0-9]{4}