자바스크립트
[JS]정규표현식
민ズl
2024. 10. 24. 11:37
정규 표현식이란🤔
정규 표현식, 또는 정규식은 문자열에서 특정 문자 조합을 찾기 위한 패턴
자바스크립트에서는 정규 표현식도 객체로서 밑에 메서드 가능
- 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/ |
공백, 탭 |
사실 정규 표현식을 완전히 공부하기 보다는 그때그때 찾아서 쓰는듯~.~
정규 표현식 - JavaScript | MDN
정규 표현식, 또는 정규식은 문자열에서 특정 문자 조합을 찾기 위한 패턴입니다. JavaScript에서는 정규 표현식도 객체로서, RegExp의 exec()와 test() 메서드를 사용할 수 있습니다. String의 match(), matchA
developer.mozilla.org
RegExr: Learn, Build, & Test RegEx
RegExr is an online tool to learn, build, & test Regular Expressions (RegEx / RegExp).
regexr.com