Javascript 와 정규 표현식 패턴

박성룡 ( Andrew park )
3 min readJul 7, 2019

--

자바스크립트를 처음부터 다시 공부해보려고 한다.

정규 표현식 을 생성할때 사용하는 패턴을 정리해보려고한다.

문자열 일치

대소문자를 구분한다. 만약 ignoreCase 가 true 로 설정되어 있으면 대소문자를 구분하지 않는다.

any 값 일치

. 은 모든 단일 문자에 대응되지만, \n\r 개행문자는 대응하지 못한다.

특수 문자 일치

\ 다음 으로 오는 특수문자는 특정 행동으로 해석하지 않고 문자 그대로 처리하도록 한다.

그룹 일치

[] 안에 들어가있는 값을 대응한다. 상황에 따라 특수문자를 다르게 해석한다.

만약 앞에 ^ 이 들어가 있다면, []없는 문자와 대응한다.

숫자 일치

\d 는 숫자 문자인 [0–9] 에 대응된다.

\D 는 숫자 문자가 아닌 [^0-9] 에 대응된다.

문자 일치

\s 는 공백, 탭, 개행 문자 에 대응된다.

\S 는 공백 문자가 아닌 문자에 대응된다.

\w 는 숫자, 소대문자, 밑줄을 포함한 [A-Za-z0–9_]에 대응된다.

\W 는 숫자, 소대문자, 밑줄이 아닌 문자에 [^A-Za-z0–9_] 대응된다.

OR

| 왼쪽과 오른쪽 의 문자열에 대응된다.

시작과 끝문자 일치

첫번째로 입력된 ^ 은 다음 문자로 시작 되었는지를 의미한다.

마지막 전에 입력된 $ 는 다음 문자로 끝 났는지를 의미한다.

여러문자

{n} 앞의 문자에 n 번 대응 한다.

{n,m} 앞의 문자에 최소 n 에서 최대 m 번 대응 한다.

{n,} 앞의 문자에 최소 n 에서 무한대 번 대응 한다.

? 앞의 문자의 0, 1회 {0,1} 에 대응한다.

* 앞 문자의 0번 이상 {0,} 에 대응한다.

+ 앞의 문자의 1회 이상 {1,} 에 대응한다.

정규식 수량자

*?, +?, {n,}? 문자가 최소로 일치하는 부분만을 찾는다.

* 만 있다면 일치하는 가장 많은 문자열을 찾지만, ? 와 함께 있다면 일치하는 가장 적은 문자열을 찾는다.

단어 경계

\b 은 단어 문자가 아닌 값에 대응된다.

\B 은 단어 문자인 값에 대응된다.

단어문자는 [a-zA-Z0–9_] 이다.

Capturing parentheses

() 그룹으로 묶고 정규 표현식을 사용할 수 있다.

() 의 내용을 기억해두었다가 다시 쓸 수 있다.

정규표현식 내에서 쓸경우 \숫자 형태로 쓰면되며,

replace 메소드 같은 곳에서는 $숫자 형태로 쓰면된다.

() 순서대로 숫자가 매겨지며, exec 메서드로 반환할 경우 index 1부터 이후 값들이 포함되어 있다.

non-capturing parentheses

(?:) 로 사용하면 그룹을 만들지만 기억해두지 않는다.

lookahead

(?=) 로 사용하면 앞의 문자에 () 가 있는 앞 문자에 대응된다.

negated lookahead

(?!) 로 사용하면 앞의 문자에 () 가 없는 앞 문자에 대응된다.

--

--

박성룡 ( Andrew park )
박성룡 ( Andrew park )

Written by 박성룡 ( Andrew park )

Javascript is great We may not be great

No responses yet