본문 바로가기
Programming/Javascript

[Javascript] 정규 표현

by Bam_t 2021. 3. 18.
728x90

내장객체의 마지막 부분이자 새로운 개념인 정규 표현에 관한 포스트입니다.


1. 정규 표현

정규 표현이란 문자열에서 특정한 패턴을 가진 문자열을 의미합니다. 대표적으로 우리가 사용하는 웹 주소(https://www.~)나 전화번호(XXX-XXXX-XXXX)가 있습니다. 주소는 https://와 www, 닷(.)이 들어가는 패턴을 가진 문자열이고 전화번호는 -으로 구분된 문자열이라고 볼 수 있습니다. 만약 이러한 문자열을 정규 표현없이 처리하려면 전화번호 같은 경우에 숫자가 세개오고 -가 오는가를 검사 한 후 숫자가 네개오고 -이 오는가라는 작업을 반복해야하는 번거로움이 생깁니다. 이런 번거로움 때문에 정규 표현을 이용하게 됩니다.

 

 

 

2. 자바스크립트의 정규 표현

정규 표현이 포함된 문자열을 정규 표현 패턴이라고도 합니다. 이어서 자바스크립트에서 사용되는 정규 표현 패턴 몇가지만 소개하려고 합니다.

문자열에 특정 정규 표현 패턴이 포함되어 있는 경우를 '매치'라고 합니다.

이하 표에서 x(y, z)는 문자 혹은 정규 표현 식입니다.

정규 표현 패턴 의미
^ 문자열의 시작을 의미합니다. ^x와 같이 쓰이면 x로 시작하는 문자열을 의미합니다.
$ 문자열의 종료를 의미합니다. x$와 같이 쓰이면 x로 종료되는 문자열을 의미합니다.
x* x가 0번 이상 반복됨을 의미합니다.
x+ x가 1번 이상 반복됨을 의미합니다.
x? x가 0번 혹은 1번 나타남을 의미합니다.
예) [abc]?는 'apple', 'favor', absolute'에 매치됩니다.
.x x로 끝나는 문자 하나와 매치됩니다.
예) .a는 'banana'와 매치되지만 'apple'과는 매치되지 않습니다.
x|y 또는(or)의 의미로 x혹은 y가 포함된 문자열을 매치합니다.
[xyz] xyz중 하나가 포함된 문자열을 검색합니다.
예)[abc]는 'apple'을 매치하고 [abc]t는 'at'(혹은 'bt', 'ct')을 매치합니다.
[^xyz] xyz를 포함하지 않은 문자열을 매치합니다.
[A-Z] A-Z사이의 문자 하나를 매치합니다.
(x) 문자 혹은 문자식 x를 하나의 그룹으로 처리합니다.
(x)(y)같은 형태로 올 경우 각각 번호를 부여해 따로 관리하게 됩니다.
x{n} x가 n번 반복됨을 의미합니다.
x{n,} x가 n번 이상 반복됨을 의미합니다.
x{m, n} x가 최소 n번 이상 최대 m번 이하 반복됨을 의미합니다.

 

정규 표현 패턴 의미
[\b] 백스페이스와 매치됩니다. 대괄호가 반드시 포함되어야 매치됩니다.
\b 단어 경계를 매치한다고 하는데, 간단히 말해 문자와 공백사이의 문자입니다.
\w 대문자와 소문자, 숫자, _와 매치됩니다. ("[A-Za-z0-9]"와 같은 표현입니다.)
\W 문자 이외의 것과 매치됩니다. ("[^\w]"와 같은 표현입니다.)
\d 숫자와 매치됩니다. ("[0-9]"와 같은 표현입니다.)
\D 숫자를 제외한 것과 매치됩니다. ("[^\d]"와 같은 표현입니다.)
\n 개행과 매치됩니다.
\r 캐리지 리턴(복귀, 커서를 줄 맨앞으로)과 매치됩니다.
\t tab과 매치됩니다.
\s 공백 문자와 매치됩니다. (스페이스, 탭, 개행을 포함한 공백 문자)
\S 공백 문자를 제외한 것과 매치됩니다. ("[^\s]"와 같은 표현입니다.)

 

 

3. 정규 표현의 옵션

정규 표현 객체에 대해선 다음 포스트에서 바로 다루겠지만 우선 다음과 같이 생성합니다.

let 변수명 = new RegExp('정규 표현 식', '옵션');
let 변수명 = /정규표현/ 옵션;

 

옵션이라는 단어가 눈에 띄는데 옵션은 정규 표현에서 동작을 결정하는 추가적인 명령입니다. 정규 표현에서 사용되는 옵션은 다음과 같습니다.

옵션 설명
g 문자열 전체에 대한 검색
i 대소문자를 구분할지 결정
m 여러행을 검색하는가(개행을 시작과 끝으로 인식하는가)
u 유니코드를 취급하는가
s .에서 개행 문자도 매칭
y 문자열의 현재 위치부터 검색을 하는 스티키 검색 수행.

옵션은 하나만 사용될 수도 있고 여러개가 동시에 올 수도 있는데 여러개가 올땐 'gimu'같은 형식으로 사용됩니다.


아래 문서를 함께 참조하시면 이해하는게 큰 도움을 받을 수 있을거라 생각합니다.

developer.mozilla.org/ko/docs/Web/JavaScript/Guide/Regular_Expressions

 

정규 표현식 - JavaScript | MDN

정규 표현식 정규 표현식은 문자열에 나타는 특정 문자 조합과 대응시키기 위해 사용되는 패턴입니다. 자바스크립트에서, 정규 표현식 또한 객체입니다.  이 패턴들은 RegExp의 exec 메소드와 tes

developer.mozilla.org

 

728x90

댓글