정규 표현식이란🤔
정규 표현식, 또는 정규식은 문자열에서 특정 문자 조합을 찾기 위한 패턴
자바스크립트에서는 정규 표현식도 객체로서 밑에 메서드 가능
- RegExp의 exec() , test()
- String의 match(), matchAll(), replace(), replaceAll(), search(), split()
정규 표현식 만들기💫
정규 표현식 리터럴 (주로 사용)
- 정규 표현식이 코드가 실행될 때 바로 컴파일됨
👉즉, 정규 표현식이 고정된 경우 성능이 더 좋음bbb - 가독성 굿
- 특수 문자를 그 자체로 사용가능
ex : \d
const regex = /pattern/;
RegExp객체 생성자
- 패턴을 동적으로 생성해야 할 때 유용
👉예를 들어, 변수에 따라 정규 표현식을 생성해야 하는 경우에 사용 - 문자열로 입력받기 때문에 백슬래시(\) 같은 특수 문자를 이스케이프해야 함
ex : \\d
const regex = new RegExp('pattern');
∴ 고정된 패턴에서는 리터럴을, 동적으로 생성할 경우에는 RegExp 생성자를 사용하는 것이 일반적
// 리터럴 방식
const regex1 = /\d+/; // 숫자가 한 개 이상 포함된 패턴
// RegExp 생성자 방식
const pattern = '\\d+'; // 동적으로 생성된 패턴
const regex2 = new RegExp(pattern);
정규 표현식 문법
패턴 | 설명 | 예시 | 매칭 예시 |
. | 임의의 한 문자 | /a.c/ |
abc , a3c , a-c |
\ |
이스케이프 문자 | /a\.c/ |
a.c |
^ |
문자열 시작 | /^abc/ |
abc123 (시작 부분 매칭) |
$ |
문자열 끝 | /abc$/ |
123abc (끝 부분 매칭) |
* |
0번 이상 반복 | /ab*c/ |
ac , abc , abbc |
+ |
1번 이상 반복 | /ab+c/ |
abc , abbc (단, ac 는 제외) |
? |
0번 또는 1번 | /ab?c/ |
ac , abc |
{n} |
정확히 n번 반복 | /a{3}/ |
aaa |
{n,} |
n번 이상 반복 | /a{2,}/ |
aa , aaa , aaaa |
{n,m} |
n번 이상 m번 이하 반복 | /a{2,3}/ |
aa , aaa |
[] |
문자 클래스 (문자 중 하나) | /[a-z]/ |
a , b , ..., z |
` | ` | OR 조건 | `/a |
\d |
숫자 (digit) | /\d/ |
0 , 1 , ..., 9 |
\w |
알파벳, 숫자, 언더스코어 | /\w/ |
a , 1 , _ |
\s |
공백 문자 (space, tab 등) | /\s/ |
공백, 탭 |
사실 정규 표현식을 완전히 공부하기 보다는 그때그때 찾아서 쓰는듯~.~
'자바스크립트' 카테고리의 다른 글
[JS] 함수 참조, 함수 호출 (0) | 2024.10.29 |
---|---|
[JS]자바스크립트 동작 원리(실행 컨텍스트, 스코프, 이벤트루프) (2) | 2024.10.25 |
[JS]this (2) | 2024.10.12 |
[JS]클로저(Closure) (0) | 2024.10.10 |
[JS]기본 문법(변수) (0) | 2024.10.01 |