본문 바로가기
Database/MYSQL

Mysql 이메일 검사 및 정규표현식

by 반화넬 2023. 8. 17.
반응형

Mysql Mariadb 이메일 regexp
Mysql regexp

정규표현식?



1. 정규 표현식은 특정한 규칙을 가진 문자열의 집합을 표현하는데 쓰이는 형식 언어
2. 문자열을 처리하는 방법 중의 하나
3. 특정한 조건의 문자를 ‘검색’하거나 ‘치환’할 때 사용 
4. mySQL에서는 REGEXP라는 키워드를 사용하여 정규표현식을 처리함


이메일주소 정규표현 검사

 

SELECT 'abcdefg@gmail.com' REGEXP '^[a-zA-Z0-9][a-zA-Z0-9._-]*[a-zA-Z0-9._-]@[a-zA-Z0-9][a-zA-Z0-9._-]*[a-zA-Z0-9]\\.[a-zA-Z]{2,4}$';

SELECT 'abcdefg@gmail.com' REGEXP '^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$';

#정규 표현식으로 지정된 메일 조소인지 검사 

Mysql Mariadb 이메일 regexp
Mysql regexp

 

Matching

기호 기능 예시 설명
. 문자 하나 "...." 문자열 4글자 이상인 것 찾음
| (수직선) | 로 구분된 문자열 찾기 "하나|둘" "하나" or "둘" 에 해당하는 문자열 찾음
[] [] 안에 나열된 패턴 문자열 찾음 "[123]셋" '1셋' or.'2셋' or '3셋'
^ 시작하는 문자열 찾음 '^넷' '넷'으로 시작되는 문자열 찾음 (넷플릭스, 넷마블)
$ 끝나는 문자열 찾음 '넷$" '넷'으로 끝나는 문자열 찾음 (인터넷, 이더넷)

REGEXP에서 논리연산자 AND를 사용하기 위해서는 필요한 정규표현식 n개를 AND로 이어서 사용해야 함.

Numbers Limit

기호 기능 예시 설명
* 0회 이상 나타나는 문자 "a*" 'a'가 0번 이상 등장하는 문자열 'a','aa', 'b'
+ 1회 이상 나타나는 문자 '장+' '장'이 1번 이상 등장하는 문자열 '장', '간장', '간장공장', '장장장'
문자{m, n} m회 이상, n회 이하 반복되는 문자 '장{1, 2}' '장' 1회 이상, 2회 이하 문자열 '장', '장장', '간장공장'
? 0~1회 나타나는문자 '장?' '장'이 0~1회 '장', '장장', '간장'

String Group

기호 기능 예시 설명
[A-z] or [:alpha:] or \a 영어 문자열 찾음 "^[A-z]" 영어로 시작하는 문자열 찾음
[0-9] or [:digit:] or \d 숫자 문자열 찾음 "[0-9]+" 한 개 이상의 숫자가 등장하는 문자열 찾음

Not

기호 기능 예시 설명
[^문자] [] 안의 문자를 포함하지 않는 문자열 찾음 '[^장]' '장'을 포함하지 않는 문자열 찾음
- '간장', '장', '간장공장' 모두 제외됨

기본문법

^ : 시작
* : 끝
[abc] : a, b, c 중 하나 
^[abc] : a, b, c 중 하나로 시작하는 문자 
^[abc].* : a, b, c 중 하나로 시작하는 문자열 
[^abc] : a, b, c 전부 아님
 \d : 하나의 숫자 
. : 문자
.* : 문자의 반복 즉 문자열 
[a-z] : a부터 z까지

Mysql Mariadb 이메일 regexp

 
 

정규표현식 마무리.

정규표현식은 특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 형식 언어이므로 프로그램을 학습하는 자는 무조건 알아두는걸 추천 드립니다.  문자열을 처리하는 방법 중의 하나로, 특정한 조건의 문자를 검색하거나 치환하는 과정을 매우 간편하게 처리할 수 있기에 유용하게 사용되죠.  정규표현식을 잘 사용하게 되면 자신의 개발 스킬이 고급으로 올라갈수 있답니다. 프로그램 & SQL 등 다양한 부분에서 사용이 가능한 정규 표현식 기본인건 아시겠죠?

 

감사합니다.

반응형