Javascript/이론

[JS] 정규 표현식의 패턴과 플래그

OnnJE 2022. 12. 21. 22:06
반응형

정규 표현식 기본 구성

/pattern/flags

 

  정규 표현식은 위와 같이 구성된다. 두 슬래시 사이에 패턴이 위치하고 마지막으로 플래그가 위치한다. 정규 표현식은 아래 코드에서 확인 가능하듯이 두 가지 문법으로 사용된다.

 

regexp = new RegExp("pattern", "flags");
regexp = /pattern/flags;

 

 

 

정규 표현식의 패턴

 

문자 / 숫자 / 특수기호 매칭 검색 기준
패턴 특징 패턴 특징
a-zA-Z 모든 영어 알파벳 | or
ㄱ-ㅎ가-힣 모든 한글 문자 [ ] 대괄호 안의 문자들에 대한 or
0-9 모든 숫자 [^문자] 대괄호 안의 문자를 제외한 경우
. 모든 문자열 ^word word로 시작하는 문자열
\특수기호 해당하는 특수기호
ex.  \* \^ \& \? 등
word$ word로 끝나는 문자열
\d 숫자 반복 패턴
\D 숫자 이외의 것 패턴 특징
\w 모든 영어, 숫자 및 _
ex.  [a-zA-Z0-9_]
abc? ab 그리고 0 또는 1개의 c를 포함한 문자열
\W 모든 영어, 숫자 및 _ 이외의 것 abc* ab 그리고 0~ 개의 c를 포함한 문자열
\s 공백 abc+ ab 그리고 1~ 개의 c를 포함한 문자열
\S 공백 이외의 것 abc*? ab 그리고 0 개의 c를 포함한 문자열
\b 한쪽은 문자, 다른 한쪽은 문자가 아닌 단어
\bword\b => wdfword word dkfewordd
abc+? ab 그리고 1 개의 c를 포함한 문자열
\B \w에 일치하는 단어 경계 abc{n} ab 그리고 n 개의 c를 포함한 문자열
\x 16진수 문자 abc{n, } ab 그리고 n~ 개의 c를 포함한 문자열
\0 8진수 문자 abc{n, m} ab 그리고 n~m 개의 c를 포함한 문자열
\u 유니코드 문자 그룹화 패턴
\n 줄바꿈 문자 패턴 특징
 
 
  () 그룹화, 캡쳐
위 abc에서 a(bc)와 같이 그룹화할 경우,
a와 x개의 bc를 포함한 문자열에 매칭 하는게 가능하다.
(?<name>word) 그룹에 name을 이름으로 지정한다.
(?: word) 그룹화(캡쳐를 반환하지 않음)
패턴 특징 패턴 특징
d(?=r) r이 바로 뒤에 있는 d를 매칭(r은 포함되지 않음) d(?!r) r이 바로 뒤에 없는 d를 매칭((r은 포함되지 않음)
(?<=r)d r이 바로 앞에 있는 d를 매칭(r은 포함되지 않음) (?<!r)d r이 바로 앞에 없는 d를 매칭(r은 포함되지 않음)

 

-추가-

(?=.*/d) : 문자열에 적어도하나의 숫자가 포함되어 있는지 확인

(?!.*\s) : 문자열에 공백문자가 없는 모든 문자열과 일치

 

정규 표현식의 플래그

 

플래그 특징 플래그 특징
i 대소문자를 구별하지 않는다 s 개행 문자도 포함하도록 한다
g 모든 패턴을 검색한다. u 유니코드 전체를 지원한다.
m 행위 바뀌더라도 검색한다. y 특정 위치에서 검색을 진행한다.

 

 

 

반응형