728x90
다양한 곳에 쓰이는 정규표현식, 매번 봐도 헷가려서 정리하기
정규 표현식(regex)이란?
정규 표현식(regex)는 regular expression의 약자로 텍스트에서 특정한 규칙(패턴)을 가진 문자열을 찾을 때 사용할 수 있는 표현식이다. 정규 표현식으로 문자열에서 전화번호만 찾기, 유효한 이메일인지 확인하기 등 다양한 작업을 할 수 있어서 다양한 프로그래밍 언어에서 내부적으로 정규 표현식을 지원한다.
💻 정규 표현식을 연습할 수 있는 사이트
https://regexr.com/5ml92
정규 표현식 사용하기
정규 표현식을 나타내는 문법은 언어별로 조금씩 다르다. 그 중 javascript에서 정규식을 작성하는 방법은 다음과 같다.
슬래쉬 사이에 패턴을 작성하고 종료 슬래쉬 뒤에 추가 옵션인 플래그를 붙인다.

정규 표현식 생성하기
// 리터럴을 이용한 정규 표현식 생성
const regex = /🍎/;
// RegExp 객체를 이용한 정규 표현식 생성
const regex = new RegExp("🍎");
const regex = new RegExp(/🍎/);
정규 표현식 패턴
문자/숫자 매칭 패턴
| 문자 | 설명 |
| a-zA-Z | 영어 알파벳 |
| ㄱ-ㅎ가-힣 | 한글 문자 |
| 0-9 | 숫자 |
| \특수기호 | 특수기호 |
| \ | 특수 기호가 아닌 것 |
| . | 모든 글자(줄바꿈 제외) |
| \d | 숫자 |
| \D | 숫자가 아닌 것 |
| \w | 문자 |
| \W | 문자가 아닌 것 |
| \s | 공백(space) |
| \S | 공백(space)이 아닌 것 |
검색/그룹/범위 패턴
| 문자 | 설명 | 예시 |
| | | 또는 | a|b |
| () | 그룹 + 기억 | (ab) |
| (?:) | 그룹 + 기억x | (?:ab) |
| [] | 괄호 안의 문자가 하나라도 있을 때 | [ab] |
| [^문자] | 괄호 안의 문자를 제외 | [^ab] |
| \b | 단어 경계 | |
| \B | 단어 경계 아님 | |
| ^문자열 | 문자열로 시작 | ^ab |
| 문자열$ | 문자열로 끝남 | ab$ |
반복 패턴
| 문자 | 설명 | 예시 |
| ? | 0 or 1 | /a?/ |
| * | 0개 이상 | /a*/ |
| + | 1개 이상 | /a+/ |
| {n} | n개 | .{2} |
| {min,} | 최소 min개 이상 | [a-z]{3,} |
| {min, max} | 최소 min개 이상, 최대 max개 이하 | [lo]{1,2} |
플래그
플래그는 정규 표현식의 종료 슬래쉬 뒤에 붙인다. 플래그로 전역 옵션을 설정해 매칭을 더 상세하게 할 수 있다.
// 리터럴 정규 표현식에 플래그 사용
const regex = /🍎/i;
// RegExp 객체를 이용한 정규 표현식에 플래그 사용
const regex = new RegExp("🍎", "i");
| 문자 | 설명 |
| i | 대소문자 구분 없이 검색 |
| g | 문자열 내의 모든 패턴을 검색 |
| m | 문자열의 행이 바뀌어도 검색 |
| s | 모든 문자 정규식이 개행 문자 \n도 포함 |
| u | 유니코드 전체 지원 |
| y | 문자 특정 위치에서 검색을 진행하는 sticky 모드 활성화 |
정규 표현식 javascript 메소드
정규표현식을 이용해 패턴을 찾기 위해 javascript에서 제공하는 함수를 용도에 맞게 사용하면 된다.
const text = "You're so delicate, 거품 속에 숨었네";
// 1. match: 일치하는 항목을 배열로 반환
text.match(/[a-zA-Z]/gm); // ['Y', 'o', 'u', 'r', 'e', 's', 'o', 'd', 'e', 'l', 'i', 'c', 'a', 't', 'e']
// 2. 일치하는 항목을 대체
text.replace(/[a-z]/gm, "🐰"); // "Y🐰🐰'🐰🐰 🐰🐰 🐰🐰🐰🐰🐰🐰🐰🐰, 거품 속에 숨었네"
// 3. 일치하는 항목을 기준으로 나누어 배열로 반환
text.split(/,/); // ["You're so delicate", ' 거품 속에 숨었네']
참고
- JavaScript 정규 표현식 문법 총정리 + 응용 예제 - 티스토리
- 정규 표현식 - 위키백과
- 자바스크립트에서 정규표현식 사용하기 - 티스토리
- https://github.com/dream-ellie/regex
반응형
'Javascript' 카테고리의 다른 글
| 실행 컨텍스트 가볍게 이해하기 (0) | 2024.09.22 |
|---|---|
| 객체를 불변하게 만드는 것이란?(feat.getOwnPropertyDescriptor()) (1) | 2024.09.01 |
| [javascript] 프로토타입이 대체 뭔데 (0) | 2024.06.24 |
| [javascript] Export default? (0) | 2024.02.26 |
| [Javascript] JS 기초 문법 정리 (0) | 2024.02.19 |