RegExp 정규 표현식

민겸·2022년 10월 23일
0

JavaScript

목록 보기
11/20
post-thumbnail

이 글은 MDN 공식문서를 기반으로 작성되었습니다.

정규 표현식이란?

공식 문서에 따르면, 정규 표현식은 문자열에서 특정 문자 조합을 찾기 위한 패턴이라고 설명하고 있다.

JavaScript에서는 많은 표준 내장 객체(parseInt, Number, Error 등)들을 가지고 있는데, 이것들 중 문자열을 나타내는 객체로 문자열을 조작할 수 있게 해주는 텍스트 처리 기능을 가진 두 가지의 객체 중 하나로 정규 표현식을 가지고 있다. 다른 하나의 객체는 String 객체가 있다.

표준 내장 객체는 RegExp이고 내장 객체로써 여러가지의 속성과 메서드를 가지고 있다. 속성들과 메서드들을 나열하기엔 너무 많으므로 더 알고싶다면 여기를 참고하기 바란다.

정규 표현식 만들기

정규 표현식은 리터럴 표기법과 생성자, 이 두 가지 방법으로 생성할 수 있다.

new RegExp(/ab*c/, 'i'); // 리터럴 표기법
new RegExp('ab*c', 'i'); // 생성자

리터럴 표기법은 빗금(/)으로 패턴을 감싸고, 생성자는 따옴표(')로 패턴을 감싼다. 이처럼 눈에 보이는 차이도 있지만, 두 가지 방법은 다른 차이점도 존재한다.

먼저, 리터럴 표기법으로 정규 표현식을 만들 경우,
해당 정규 표현식은 정규 표현식이 정의된 스크립트 파일(ex)regExp.js)을 불러올 때 컴파일된다.
이와 달리, 생성자로 정규 표현식을 만들 경우,
해당 정규 표현식은 런타임(runtime)에 컴파일된다.

그래서 바뀔 일이 없는 패턴을 고정시켜놓고 사용하는 경우,
리터럴 표기법으로 정규 표현식을 만들어놓은 뒤에 여러 곳에 사용하면 성능면에서 보다 더 좋다.
하지만 패턴이 자주 바뀌는 경우(로직 자체에서 패턴이 유동적이어야 하거나, 외부 사용자의 입력에 따라 패턴이 바뀐다거나),
생성자로 정규 표현식을 사용하는 것이 좋다.

JavaScript에서의 정규 표현식

JavaScript의 정규 표현식(RegExp) 객체는 RegExp 객체 자체의 메서드 뿐만 아니라, String 객체의 메서드도 같이 사용할 수 있다. 그 목록은 다음과 같다.

profile
기술부채상환중...

0개의 댓글