자바스크립트

[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/ 공백, 탭

 

사실 정규 표현식을 완전히 공부하기 보다는 그때그때 찾아서 쓰는듯~.~

 

 

[mdn 공식문서]

 

정규 표현식 - 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

참고영상