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}