패턴
Group and ranges
|
- or
()
- 그룹 지정 /(hi|hello) | (and)/gm >> hi또는 hello를 찾거나(group1) and를 찾음(group2)
/gr(e|a)y/gm
gray 또는 grey를 찾게됨
?:
찾지만 그룹지정하지 않음
?=
긍정형 전방탐색기호, 뒤에오는 패턴을 제외하고 찾음
?!
부정형 전방탐색
?<=
긍정형 후방탐색
?<!
부정형 후방탐색
[]
괄호안의 어떤 문자든 찾음 gr[acd]y , gr[a-f]y
[^]
괄호안의 문자를 제외한 나머지
.
줄바꿈을 제외한 모든 문자 // a.b // a+ 모든문자+b
Quantifiers 수량
?
없거나 있거나 gra?y >> gray or gry
*
없거나 있거나 많거나 gra*y>> gry or gray or graaay
+
하나 또는 많이 gra+y >> gray or graaay
{n}, {min,} {min,max}
>> gra{2}y, gra{2,}y gra{2,3}y
Boundary-type
\b 단어 경계 >> \bYa 앞에나오는 Ya만 찾음, Ya\b 뒤에나오는 Ya만 찾음
\B >> Ya\B 뒤에서 쓰이는 Ya만 제외하고 찾음
^ 문장의 시작 ^Ya 문자의 시작에 있는 Ya
$ 문장의 끝 Ya$ 문장의 끝에 있는 Ya >> multiline 플래그가 없다면 문단의 끝에서 찾음
Character classes
\특수문자 [
를 찾고 싶을때는 \[
를 사용
\d 숫자
\D 숫자가 아닌 모든 것
\w 모든 문자열
\W 문자열 제외 모든 것
\s 띄어쓰기 찾기
\S 띄어쓰기를 제외한 모든 것
플래그
g - global 매칭되는 다수의 결과값 기억
m - multi-line
i - case insensitive 대소문자 구별안함
ex) 번호찾기
010-0000-0000
02-000-0000
/\d{2,3}[- .]\d{3,3}[- .]\d{4}/gm
이메일찾기
hello.wordl@hello.co.kr
/[a-zA-Z0-9._+-]+@[a-zA-Z0-9._+-]\.[a-zA-Z0-9._+-.]/gm
유튜브 주소 찾기
/(https?:\/\/)?(www\.)?youtu.be\/([a-zA-Z0-9-]{11})/gm
http 또는 https ://가 있거나 없거나, www.이 있거나 없거나
youtu.be/ 11자리의 고유 주소를 찾는다