정규 표현식 문법 정리공부/Javascript2023. 1. 24. 19:07
Table of Contents
반응형
개요
임의 문자 유형을 얼마나 반복해서 포함하는 지 또는 지정된 문자 형식을 검출하는데 유용한 정규표현식에 대해 공부/정리한 내용 포스팅함. ( 아래 영상을 보고 1시간 투자 후 정규 표현식을 스스로 찾아보고 할 수 있게 되었다! 😎 )
유튜브 (✨강추)
https://www.youtube.com/watch?v=t3M6toIflyQ&ab_channel=%EB%93%9C%EB%A6%BC%EC%BD%94%EB%94%A9
문법 정리
Groups and ranges (범위, 그룹)
Chracter | 의미 |
| | 또는(OR) |
() | 그룹 |
[] | 문자셋, 괄호안의 어떤 문자 |
[^] | 부정 문자셋, 괄호안의 어떤 문가 아닐때(not) |
(?:) | 찾지만 기억하지는 않음 (no group) |
Boundary-type
Chracter | 의미 |
\b | 단어 경계(앞 또는 뒤 붙여씀) |
\B | 단어 경계가 아님(NAND느낌) |
^ | 문장의 시작 |
$ | 문장의 끝 |
Character classes
Chracter | 의미 |
\ | 특수 문자가 아닌 문자 |
. | 어떤 글자 (줄바꿈 문자 제외) |
\d | digit 숫자만, [0-9] 와 동일 |
\D | digit 숫자 아님 |
\w | word 문자만 |
\W | word 문자 아님 |
\s | space 공백만 |
\S | space 공백 아님 |
👩💻 Character classes에서 대문자 표기는 NOT 뜻함
Quantifiers (수량)
Chracter | 의미 |
? | 없거나 있거나 (zero or one) |
* | 없거나 있거나 많거나 (zero or more) |
+ | 하나 또는 많이 (one or more) |
{n} | n번 반복 |
{min,} | 최소 |
{min,max} | 최소, 그리고 최대 |
아래 예시는 다른 방식으로도 검출 가능하니, 참고만 하시길 😌
예시
1. 생년월일 (YYYYMMDD) 형식
# 표현식
([12]\d{3})(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])
ㄴ 년도 : [12] 1또는 2 , \d{3} ( \d = [0-9] 와 같음) 숫자 3자리 차지
ㄴ 월 : (0[1-9]|1[0-2]) 01~12월까지
ㄴ 일 : (0[1-9]|[12]\\d|3[01]) 01~09일 또는 10~19일 또는 30~31일
# 테스트
19990101 ✨
99991231 💩
2. 시분 (HH24MI) 형식
([01]\d|2[0-4])([0-5])(\d)
ㄴ 시 : ([01]\d|2[0-4]) 00 ~ 19 시 또는 20~23시
ㄴ 분 : ([0-5])(\d) 00~59 분 까지
# 테스트
2359 ✨
2468 💩
3. 이메일 형식
[a-zA-Z0-9._+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9.]+
ㄴ [] 사이에 있는 + (하나 또는 여러개) 는 Quantifiers (수량) 나타냄
ㄴ \. 은 이메일 주소 사이에 dot(.) 나타냄
💡 특수 문자, 기호는 백 스페이스 \ 로 표기해야 인식
# 테스트
abc123DFG._+-@gmail.com ✨
@gmail.com 💩
4. 전화번호 형식
\d{2,3}[- .]\d{3}[- .]\d{4}
# 테스트
02-123-4567 ✨
051-123-4567 ✨
010-1234-4567 💩 가운데 3자리로 제한되므로
유용한 사이트
✔ 테스트 사이트
✔ 정규식 단계별 연습 사이트
반응형
'공부 > Javascript' 카테고리의 다른 글
패스트캠퍼스 JavaScript 코딩테스트 강의 한 달 후기 (3) | 2023.05.12 |
---|---|
패스트캠퍼스 JavaScript 코딩테스트 강의 4주차 (0) | 2023.05.08 |
패스트캠퍼스 JavaScript 코딩테스트 강의 3주차 (0) | 2023.05.01 |
패스트캠퍼스 JavaScript 코딩테스트 강의 2주차 (0) | 2023.04.24 |
패스트캠퍼스 JavaScript 코딩테스트 강의 1주차 (0) | 2023.04.17 |
@leejinwoo1126 :: 천천히 하나씩
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!