정규표현식


개발을 하다 보면, 처음 보면 알 수 없는 기호들(^, *, . 등)으로 이루어진 무언가를 마주칠 수 있습니다. 바로 정규표현식입니다. 당황스럽고 무슨 뜻인지도 모르겠고, 외우자니 너무 복잡해보입니다.

하지만, 한 번 제대로 익혀두면 입력 검증, 텍스트 추출, 문자열 치환 등 다양하게 사용할 수 있습니다.

예를 들면, 다음과 같은 상황에서 정규표현식을 활용하면 한 줄로 깔끔하게 구현할 수 있습니다.

정규표현식을 사용하지 않는다면 여러 ifsubstring을 사용해 여러 줄의 복잡한 코드를 구현해야 합니다.

기본 문법

정규표현식은 다양한 메타 문자를 사용해 문자열의 규칙을 정의합니다. / (슬래시)문자 사이에 정규식 기호를 사용해 패턴을 만들어 입력하고, 필요한 경우 flag로 검색시 옵션을 설정할 수 있습니다.

image.png

정규표현식 만들기

JavaScript에서는 정규표현식을 RegExp 객체로 표현합니다.

기본적으로는 리터럴 방식으로 /.../ 슬래시로 감싸서 작성합니다. 간단하고 직관적입니다.

스크립트를 불러올 때 컴파일되므로 바뀔일 없는 패턴은 리터럴 방식으로 작성시에 성능을 향상시킬 수 있습니다.

const regex = /a/;

동적으로 패턴을 만들어야 할 때는 생성자 RegExp를 사용하는 방식을 사용합니다. 문자열로 패턴을 전달하므로 이스케이프 처리를 신경써야합니다.

생성자 함수 표현식은 런타임에 컴파일되므로 바뀔 수 있는 패턴이나 사용자가 입력한 값을 정규식으로 만들 때 사용됩니다.

const pattern = 'a';
const regex = new RegExp(pattern); // /a/