코드카타 126번
https://leetcode.com/problems/find-users-with-valid-e-mails/
방법1. 정규표현식
select *
from Users
where
mail regexp ('^[[:alpha:]][[:alpha:]0-9_.-]*@leetcode\.com$')
- 해석
- ^[:alpha:] ➜ 대소문자 구분 없이 영문자로 시작
- [[:alpha:][0-9]_.-]* ➜ 대소문자 구분없이 영문자, 숫자, _ , . , - 중 하나를 0개 또는 무한개 포함
- @leetcode\.com$ ➜ @leetcode.com 으로 끝
- 주의
- 2번에서 * 대신 +로 하면
- w@leetcode.com 이건 조건 불충족됨
- 이유 : + 는 무조건 [ ] 안에 하나는 포함해야 한다는 의미니까
- '^[:alpha:]+[[0-9]_.-]*@leetcode\.com$' 이렇게 하면
- sally.come@leetcode.com 이건 조건 불충족됨
- 이유 : [ ] 안에 하나 뒤에 바로 @leetcode.com 이 붙어야 한다는 코드임
- 2번에서 * 대신 +로 하면
방법2. 문자열 split하기
select *
from Users
where
mail regexp ('^[[:alpha:]][[:alpha:]0-9_.-]*@')
and substring_index(mail, '@', -1) = 'leetcode.com'
substring_index(컬럼명, '기준이 될 문자', 가져올 문자 누적 개수)
: 특정 문자를 기준으로 분리 (파이썬의 split 기능)
: 인덱스가 아니라 덩어리로 누적되어서 가져옴
: 1부터 시작 / 뒤에서부터 시작하려면 -1, -2, ...
🔹 예시 (km@naver.com)
substring_index(mail, '@', 1) = km
substring_index(mail, '@', -1) = naver.com
substring_index(mail, '@', 2) = km@naver.com
'데이터 분석 > SQL' 카테고리의 다른 글
| QCC 5회차 (0) | 2025.05.02 |
|---|---|
| QCC 4회차 (0) | 2025.04.11 |
| QCC 3회차 (0) | 2025.04.04 |
| [day24] window 함수 - 비율 함수 (0) | 2025.03.11 |
| [day19] SQL 어려워도 슬퍼도 나는 안 우럭 .. / 파이썬 다시 시작 ! (0) | 2025.03.06 |