정규표현식

RHUK2·2021년 12월 19일
0

Javascript

목록 보기
46/56
post-custom-banner

📚 Reference


MDN, https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide/Regular_Expressions#special-negated-character-set
javascript.info, https://ko.javascript.info/regexp-introduction

참고 사이트에 내용을 개인적으로 복습하기 편하도록 재구성한 글입니다.
자세한 설명은 참고 사이트를 살펴보시기 바랍니다.


정규표현식


문법

정규표현식은 "패턴"과 "플래그"로 두 가지로 구성되어 있습니다. 그리고 아래와 같이 두 가지 문법으로 표현이 가능합니다.

const firstRegexp = new RegExp("pattern", "flags");
const secondRegexp = /"pattern"/"flags";

플래그

문법설명
g전역 검색
i대소문자 구분 없는 검색
m다중행(multi-line) 검색

패턴

문법설명
abc정확히 대응되는 abc 탐색
^abc입력의 시작 부분이 abc로 대응되는지 탐색
abc$입력의 끝 부분이 abc로 대응되는지 탐색
^abc$입력의 시작과 끝이 abc로 대응되는지 탐색

문법설명
a*a가 0개 이상 대응되는지 탐색, a{0,}과 동일
a+a가 1개 이상 대응되는지 탐색, a{1,}과 동일
a?a가 0개 이상 1개 이하로 대응되는지 탐색, a{0,1}과 동일
a{n}a가 n개 이상 대응되는지 탐색
a{2,}a가 2개 이상 대응되는지 탐색
a{3,5}a가 3개 이상 5개 이하로 대응되는지 탐색

문법설명
(abc)포획 괄호
(?:abc)비포획 괄호
\numnum은 숫자, 정규식 내부의 num번째 포획 괄호
\d(?=px)px이 뒤따라오는 단일 숫자에 대응되는지 탐색, lookahead
\d(?!px)단일 숫자 뒤에 px이 없는 경우에 대응되는지 탐색, negated lookahead
(ab)*ab가 0개 이상 대응되는지 탐색
(ab){1,5}ab가 1개 이상 5개 이하로 대응되는지 탐색
a|ba 또는 b에 대응되는지 탐색
(a|b)cdacd 또는 bcd에 대응되는지 탐색

문법설명
[ ]괄호 안에 포함된 한 문자에 대응되는지 탐색
[^ ]첫문자로 ^를 쓰면 괄호 내용의 부정. 즉, 괄호 안에 포함되지 않는 한 문자에 대응되는지 탐색
[ab]a 또는 b에 대응되는지 탐색, a|b 와 동일
[a-d]a부터 d까지 중에 대응되는지 탐색, a|b|c|d 또는 [abcd] 와 동일
^[a-zA-Z]입력의 시작이 영문에 대응되는지 탐색
[0-9]%% 앞에 하나의 숫자가 대응되는지 탐색
%[^a-zA-Z]%두 % 사이에 영문 없이 대응되는지 탐색

문법설명
.개행 문자를 제외한 모든 단일 문자
\d숫자, [0-9]와 동일
\D숫자가 아닌 것, [^0-9]와 동일
\w언더바를 포함한 영숫자 문자, [a-zA-Z0-9_]와 동일
\W언더바를 포함한 영숫자 문자가 아닌 것, [^a-zA-Z0-9_]와 동일
[\b]백 스페이스
\b단어 경계
\B단어 경계가 아닌 것
\s공백 문자
\S공백 문자가 아닌 것
\f폼피드 문자
\n줄 바꿈 문자
\r캐리지 리턴 문자
\t탭 문자
\0널 문자

(?=REGEX_1)REGEX_2
Match only if REGEX_1 matches; after matching REGEX_1, the match is discarded and searching for REGEX_2 starts at the same position.

(?!REGEX_1)REGEX_2
Match only if REGEX_1 does not match; after checking REGEX_1, the search for REGEX_2 starts at the same position.

profile
생각 많이 하지 않기 😎
post-custom-banner

0개의 댓글