반응형
정규 표현식은 자주 사용하진 않지만 알아두면 좋은 도구로, 특정 패턴을 찾거나 추출할 때 사용된다. 정규식을 다 외울 필요는 없지만, 매번 사용할때마다 헷갈려서 찾아보고 사용하는게 불편하여 정리해두면 좋을 것 같다.
Meta 문자
정규 표현식에서 특별한 의미를 가지는 문자로, 패턴을 정의하고 검색할때 사용되며 특정한 기능을 수행한다.
문자 수령자
문자 수령자 또는 반복 메타문자라고 알려진 메타문자 그룹이다. 특정 문자 또는 패턴의 반복을 지정하는데 사용된다. 여러 번 반복되는 문자 또는 패턴을 표현할때 유용하다.
표현식 | 의미 | 예시 |
^ | 문자열의 시작 | ^x : x 문자로 시작됨을 의미 |
$ | 문자열의 끝 | x$ : x 문자로 종료됨을 의미 |
. | 임의의 한 문자 | .x : x문자 앞에 한 문자가 들어감을 의미 |
* | 0개 이상의 반복 | x* : x 문자가 0번 또는 그 이상 반복됨을 의미 |
+ | 1개 이상의 반복 | x+ : x 문자가 한번이상 반복됨을 의미 |
? | 0개 또는 1개의 반복 | x? : x 문자가 존재할 수도, 존재하지 않을 수도 있음을 의미 |
특수 문자 클래스
Meta 문자들 중에서 특수 문자 클래스로, 패턴 내에서 문자 클래스로 사용된다.
표현식 | 의미 |
(x|y) | x또는 y |
x{n} | x가 n번 반복 |
x{n,} | x가 n번 이상 반복 |
x{n, m} | x가 m에서 n개의 반복 |
[x,y,z] | x,y,z 중 하나 |
[^x,y] | x와 y를 제외한 문자 |
[a-z] | a에서 부터 z까지 |
\^ | ^을 문자로 사용함을 의미 (^대신 다른 문자 입력 가능) |
\b | 문자와 곰백 사이의 문자를 의미 |
\B | 문자와 공백사이가 아닌 문자를 의미 |
\d | 숫자를 의미 |
\D | 숫자가 아닌것을 의미 |
\s | 공백 문자를 의미 |
\S | 공백문자가 아닌것을 의미 |
\t | 탭을 의미 |
\v | 수직 탭 문자를 의미 |
\w | 알파벳 + 숫자 + _중의 한 문자를 의미 |
\W | 알파벳 + 숫자 + _중의 한 문자가 아님을 의미 |
Flag
정규식의 동작을 조정하고 패턴을 검사할때 적용된다.
g | Global을 표현, 문자열 내의 모든 패턴을 검사 |
i | 문자열에 대해서 대/소문자를 식별하지 않음 |
m | 문자열이 다중라인의 문자열일 경우도 검사 |
예시
# 이메일
/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/
# 집전화번호
/^(070|02|031|032|033|041|042|043|051|052|053|054|055|061|062|
063|064)-\d{3,4}-\d{4}$/u
# 휴대폰번호
/^(010|011|016|017|018|019)-\d{3,4}-\d{4}$/u
# 우편번호
/^\d{3}-?\d{3}$/u
# 아이디
/^[a-zA-Z]\w{2,7}$/u
# 주민등록번호
/^\d{2}[0-1]\d[0-3]\d-?[1-6]\d{6}$/u
#날짜
1. YYYY-MM-DD HH:mm:ss
/\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01]) (0[0-9]|1[0-9]|2[0-3]):(0[1-9]|[0-5][0-9]):(0[1-9]|[0-5][0-9])$/
2. YYYY-MM-DD
/^\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$/
3.HH:mm:ss
/^(0[0-9]|1[0-9]|2[0-3]):(0[1-9]|[0-5][0-9]):(0[1-9]|[0-5][0-9])$/
반응형
'Theory' 카테고리의 다른 글
[아키텍처] 모노리식 이커머스 (1) | 2024.09.18 |
---|---|
효율적으로 로그 관리하기 (1) | 2024.05.23 |
프로그램 명명 규칙 - Naming (0) | 2024.03.15 |
호스팅이란? (0) | 2023.11.26 |
HTTP란 무엇인가? (0) | 2023.11.24 |