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 | 특정 위치에서 검색을 진행한다. |
반응형