pic.me 를 개발할 때 이메일 형식 검사를 할 때 정규식을 이용해서 아주 편리하게 개발을 한 적이 있다.
사실 그때는 정규식을 잘 몰라서 구글링을 통해 많이 쓰이는 이메일 정규식을 찾아 사용했는데, 이번에 코딩테스트 공부를 하면서 다시 정규식과 마주했다.
이제는 정말 정리를 끝내야겠다 생각해서 정규식을 한 번 톺아보았다.
정규식을 선언하는 방법은 간단하다.
/여기 안에 정규식을 써주면 된다/옵션
ex. /abc/gm
/a|b/gm
: 문자열에서 a 또는 b를 모두 찾아줌/(abcd)/gm
: abcd를 모두 찾아줌. 만약 a 혹은 b 혹은 c 혹은 d로 하고 싶으면 /(a|b|c|d)/gm
/[abcd]/gm
: a 혹은 b 혹은 c 혹은 d를 찾아줌[a-z]
: a부터 z까지를 모두 찾아줌[^a-za-z]
: a-zA-z 빼고 모든 것을 찾아줌?
: 있거나 없거나/gra?y/gm
: gry, gray 모두 찾아줌*
: 있거나 없거나 많거나+
: 하나 또는 많이{n}
: n번 반복{min, }
: 최소 min번 반복{min, max}
: 최소, 그리고 최대\b
: 단어 경계\B
: 단어경계가 아님^
: 문장의 시작$
: 문장의 끝.
: 모든 문자열 선택 ex././\
: 특수문자 .
,
]
등이 있는지 찾고 싶을 때 ex./\.\[/
\d
: 숫자 ex. /\d{3}/ : 숫자 세자리\D
: 숫자가 아님\w
: 문자\W
: 문자가 아님\s
: 공백\S
: 공백이 아님heather.developer.zzang@gmail.com
hello@daum.net
hello@daum.co.kr
010-898-0893
010 898 0893
010.898.0893
010-405-3412
02-878-8888
https://www.youtu.be/-ZClicWm0zM
https://youtu.be/-ZClicWm0zM
youtu.be/-ZClicWm0zM
/\d{2,3}[-.\s]\d{3}[-.\s]\d{4}/gm
```/[a-zA-Z0-9._+-]+@[a-zA-Z0-9]+\.[a-zA-Z0-9.]+/gm```
regex = /(?:https?:\/\/)?(?:www\.)?youtu.be\/([a-zA-Z0-9-]{11})/gm
?: 로 인해 그룹 3개 중에 뒤에 있는 ([a-zA-Z0-9-]{11}) 이 부분만 그룹으로 캡쳐가 되어서
url.match(regex)를 했을 때 1번 인덱스에 그룹으로 캡쳐가된 아이디가 들어오게 된다!
솝커톤 때 금액 세 자리마다 쉼표로 끊어주는 정규식을 인터넷에서 긁어 와서 썼었던 기억이 나는데, 요런 규칙을 가지고 있었다니 신기하네용 ㅎㅎ 정규식은 정말 넘 유용한 것 같아요!!! 저도 무작정 구글링해서 갖다 쓰기만 하지 말고 한번 직접 만들어서 써보고싶다는 생각이 드네요 ㅎㅎ 필요할 때마다 보러 와야겠어요!! 정말 정리 깔끔 그잡채!!