tech.junha.kr

정규표현식(Regular Expression)

정규표현식을 해석하는 정규표현식 엔진이 언어 별로 다르게 구현되어 있으니 일부 표현이나 문법이 다를 수 있습니다.
본 포스트에서는 JavaScript를 기준으로 작성합니다.

정규표현식(Regular Expression)

: 특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 형식 언어이다.

정규식이 필요한 예시

  • 각각 다른 포맷으로 저장된 엄청나게 많은 전화번호 데이터를 추출해야 할 때
  • 사용자가 입력한 이메일, 휴대폰 번호, IP 주소 등이 올바른지 검증하고 싶을 때
  • 코드에서 특정 변수의 이름을 치환하고 싶지만, 해당 변수의 이름을 포함하고 있는 함수는 제외하고 싶을 때
  • 특정 조건과 위치에 따라서 문자열에 포함된 공백이나 특수문자를 제거하고 싶을 때

즉, 문자열의 검색과 치환을 위한 용도로 사용한다.

정규식이 제공하는 효율적인 문자열 처리 방법을 통해 시간과 노력을 아낄 수 있다.

생성하기

JavaScript에서는 정규식을 선언하는 방법이 두 가지가 있다.

1. 리터럴로 선언하기

const regex = /abc/;

정규식 리터럴 방식은 문자열 양쪽을 슬래시(/)로 감싸는 방식이다. 스크립트가 로드될 때 컴파일되므로, 정규식 문자열이 변하지 않는다면 리터럴 방식으로 선언하는 것이 성능상 이점이 있다.

2. 정규식 생성자 RegExp를 이용해 선언하기

const regex = new RegExp("abc");

정규식 생성자를 이용하는 방법은 RegExp 생성자에 매개변수로 패턴을 선언하는 방식이다. 정규식이 실행 시점에 컴파일되므로, 정규식을 동적으로 변화시켜야 할 때 유용하다.