정규 표현식은 / (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,})/