정규표현식이란 무엇일까요?
정규 표현식은 주로 복잡하고 특정한 규칙을 가진 문자열을 처리하기 위해 사용합니다
실생활에서 이메일 유효성 검사나,전화번호 유효성 검사와 같은 일을 처리할 때 사용하곤 합니다
그럼 지금 부터 정규 표현식이 정확히 무엇인지,어떻게 사용하는 지에 대해 알아보도록 합시다
💡정규표현식(Regular Expression)
특정 문자열의 규칙을 가지는 문자열의 집합을 표현하는데 사용되는 언어
문자 클래스
정규식 패턴 |
설명 |
패턴 종류 |
\w |
문자만 허용 |
[a-zA-z_0-9] |
\W |
문자가 아닌 경우만 허용 |
[^a-zA-z_0-9] |
\d |
숫자만 허용 |
[0-9] |
\D |
숫자가 아닌 경우만 허용 |
[^0-9] |
\s |
공백 문자,탭만을 허용 |
(space,tab,newline) |
\S |
공백 문자,탭이 아닌 경우만 허용 |
!(space,tab,newline) |
어설션
정규식 패턴 |
설명 |
^ |
문장의 시작(특정 문자열로 시작) |
$ |
문장의 끝(특정 문자열로 끝) |
수량자
정규식 패턴 |
설명 |
? |
없거나 있거나(zero or one) |
* |
없거나 많거나 (zero or more) |
+ |
하나 또는 많이(one or more) |
{n} |
n개가 있는 |
{min,} |
앞의 문자가 최소 min 이상 |
{min,max} |
앞의 문자가 min 이상 max이하인 경우 |
그룹과 범위
정규식 패턴 |
설명 |
() |
그룹화(하나의 문자로 취급할 때 사용) |
[] |
문자셋,괄호 안의 어떤 문자든 - [abc] : a,b,c 중 하나를 포함한 경우 - [0-9] : 0부터 9 숫자 중 하나를 포함한 경우 - [a-z] : 소문자 a부터 z 중 하나를 포함한 경우 - [a-zA-Z] : 모든 알파 |
[^] |
부정 문자셋, 괄호 안의 어떤 문자가 아닐 때 |
(?:) |
찾지만 기억하지는 않음 |
그럼 자주 사용되는 정규 표현식 예제를 살펴보도록 할까요?
이메일
var Email=/^[A-z0-9]{2,20}+@[A-z]{2,20}+\.[a-z]{2,3}$/
- [A-z0-9]{2,20} : 길이가 2에서 20사이의 알파벳 대소문자와 숫자로 이루어져야함을 의미합니다
- +@[A-z]{2,20} : +@ 다음에 2에서 20사이의 알파벳 대소문자로 이루어진 문자열이 이어져야 함을 의미합니
- \.[a-z]{2,3} : \.은 구분자로, . 뒤 길이가 2에서 3인 알파벳 소문자로 이루어져야함을 의미합니다
-
핸드폰 번호
var Phone = /^\d{3}-\d{3,4}-\d{4}$/
- ^\d{3} : 세 자리의 숫자로 시작해야 합니다
- -\d{3,4} : 하이픈으로 구분되며, 세 자리 또는 네 자리의 숫자로 이루어져야 합니다
- \d{4}$ : 네 자리의 숫자로 끝나야 합니다