Character | 뜻 |
---|---|
\| | 또는 |
() | 그룹 |
[] | 문자셋, 괄호안의 어떤 문자든 |
[^] | 부정 문자셋, 괄호안의 어떤 문자가 아닐때 |
(?:) | 찾지만 그룹으로 기억하지는 않음 |
Character | 뜻 |
---|---|
? | 없거나 있거나 (zero or one) |
* | 없거나 있거나 많거나 (zero or more) |
+ | 하나 또는 많이 (one or more) |
{n} | n번 반복 |
{min,} | 최소 |
{min,max} | 최소, 그리고 최대 |
Character | 뜻 |
---|---|
\b | 단어 경계 |
\B | 단어 경계가 아님 |
^ | 문장의 시작 |
$ | 문장의 끝 |
Character | 뜻 |
---|---|
\ | 특수 문자가 아닌 문자 |
. | 모든 글자 (줄바꿈 문자 제외) |
\d | digit 모든 숫자 |
\D | digit 숫자 제외 |
\w | word 모든 문자 |
\W | word 문자 제외 |
\s | space 모든 공백 |
\S | space 공백 제외 |
/[a-z]/gm
: a부터 z까지 지정
/[a-zA-Z0-9]/gm
: a부터 z까지, A부터 Z까지, 0부터 9까지 지정
/[^a-zA-Z0-9]/gm
: a부터 z까지, A부터 Z까지, 0부터 9까지를 제외한 것들 지정
/[/bHi]/gm
: Hi중에서 단어 앞에서 쓰이는 Hi를 지정
/[Hi/b]/gm
: Hi중에서 단어 뒤에 붙어쓰이는 Hi를 지정
/\[\]\{\}/gm
: 특수문자인 경우, \
를 앞에 붙여야 특수문자로 인식된다. 여기서는 []와 {}를 지정한다.
Hi there, Nice to meet you. And Hello there and hi.
I love grey(gray) color not a gry, graay and graaay. grdy
Ya ya YaYaYa Ya
abcdefghijklmnopqrstuvwxyz
ABSCEFGHIJKLMNOPQRSTUVWZYZ
1234567890
.[]{}()\^$|?*+
010-898-0893
010 898 0893
010.898.893
010-405-3412
02-878-8888
dream.coder.ellie@gmail.com
hello@daum.net
hello@daum.co.kr
http://www.youtu.be/-ZClicWm0zM
https://www.youtu.be/-ZClicWm0zM
https://youtu.be/-ZClicWm0zM
youtu.be/-ZClicWm0zM
일단 010-111-2222
와 같은 기본 형태를 지정해보자.
/\d\d\d-\d\d\d-\d\d\d\d/gm
여기서 바꿔보자.
/\d{2,3}[- .]\d{3}[- .]\d{4}/gm
\d{2,3}
처음에는 숫자가 2~3번 나와야하고
[- .]
중간에는 - 또는 공백 또는 . 이 나와야한다.
\d{3}
그 다음에는 숫자가 3번 나와야하고
[- .]
또 중간에는 - 또는 공백 또는 . 이 나와야한다.
\d{4}
마지막으로는 숫자가 4번 나와야한다.
/[a-zA-Z0-9.]+@[a-zA-Z0-9]+\.[a-zA-Z0-9.]+/gm
# 과정1
/(https?:\/\/)?(www\.)?youtu.be\/([a-zA-Z0-9-]{11})/gm
https?:\/\/
https에서 s는 있어도 되고 없어도 되므로 뒤에 ?:를 붙인다.
(https?:\/\/)?
https:// 이 부분 전체도 있어도 되고 없어도 되는 부분이므로 그룹으로 묶고 뒤에 ?를 붙인다.
(www\.)?
www. 이 부분 전체도 있어도 되고 없어도 되므로 그룹으로 묶고 뒤에 ?를 붙인다.
youtu.be\/
슬래쉬도 특수문자니까 앞에 \를 붙인다.
이제 동영상아이디 부분인데,
([a-zA-Z0-9-]{11})
총 11개의 문자열로 이루어졌으므로 뒤에 {11}를 붙인다.
이렇게 우리는 총 3가지의 그룹을 만들었다.
근데 우리는 동영상아이디만을 가져와야 한다.
따라서 필요없는 http부분과 www부분에 ?:를 붙여 캡처하지 않도록 지정하면 된다.
# 최종코드
/(?:https?:\/\/)?(?:www\.)?youtu.be\/([a-zA-Z0-9-]{11})/gm