정규 표현식은 / (expression) / 로 표현한다.
Groups and Ranges
|: 또는(): 그룹/gr(a|e)y/: gr과 y 사이에 a 또는 e가 존재하는 문자
(?:): 찾지만 기억하지 않음[]: 문자셋, 괄호안의 어떤 문자든[^]: 부정 문자셋, 괄호안의 어떤 문자가 아닐 때[a-zA-Z0-9]: a~z, A~Z, 0~9 범위에 속하는 모든 문자[^a-zA-Z0-9]: a~z, A~Z, 0~9 범위에 속하지 않는 모든 문자
Quantifiers
?: 없거나 있거나 (zero or one)*: 없거나 있거나 많거나 (zero or more)+: 하나 또는 많이 (one or more)/gra?y/: a가 없거나 있는 문자
{n}: n번 반복{min, }: 최소 min번 반복{min, max}: 최소 min번, 최대 max번 반복/gra{2}y/: a가 두 번 존재하는 문자/gra{2, 3}y/: a가 최소 2번 최대 3번 존재하는 문자
Boundary-type
\b: 단어 경계\B: 단어 경계가 아님/\bYa/: 단어 앞에서 쓰이는 Ya 문자/Ya\b/: 단어 뒤에서 쓰이는 Ya 문자/Ya\B/: 단어 뒤에서 쓰이지 않는 Ya문자
^: 문장의 시작$: 문장의 끝
Character Classes
.: 줄바꿈 문자를 제외한 어떤 글자\: 특수 문자가 아닌 문자\.: . 문자
\d: digit 숫자\D: digit 숫자 아님\w: word 문자\W: word 문자 아님\s: space 공백\S: space 공백 아님
EXAMPLE
전화 번호
/\d{2,3}[- .]\d{3,4}[- .]\d{4}/이메일
/[a-zA-Z0-9._+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9.]/유튜브 아이디 추출
- http://www.youtu.be/id
- https://www.youtu.be/id
- http://youtu.be/id
- youtu.be/id
/(?:https?:\/\/)?(/:www\.)?youtu.be\/([a-zA-Z0-9-]{1,})/