SQL

[mysql] 1517. Find Users With Valid E-Mails - 정규식

김랑해 2024. 3. 29. 11:44

https://leetcode.com/problems/find-users-with-valid-e-mails/submissions/1216895411/

 

 

정규식은.. 아직도 어렵다

잘쓰면 정말 유용한데 잘 못쓰겠는 게 함정임

다음에 정규식을 사용하는 나를 위하여... 정리를..

 

 

일단 위의 문제의 경우

select * FROM Users
where mail regexp'^[a-zA-Z][0-9a-zA-Z._-]*@leetcode[.]com$'

이렇게 풀면 된다

 

문제 풀이를 좀 해보자면

 

⭐ 정규식 사용

  • - : ~의 의미 (ex. a-z : a부터z까지)
  • ^[a-zA-Z] : a~z혹은 A-Z 사이의 값으로 시작해야함
  • [0-9a-zA-Z._-]* : 0-9 혹은 A-Z 혹은 a-z 혹은 . 혹은 - 혹은 _ 의 값이 0번이상(=*) 존재할 것
  • @leetcode[.]com$ : 끝나는 문자가 @leetcode.com 일 것

⭐ [.]로 가둬줘야함

  • .의 의미가 정규식에서 따로 사용하고 있기 때문임 - 단일 문자를 매치시키기
    • .ap = aap, bap, cap…
    • ..bb = aabb, abbb, acbb … ( . 의 개수만큼 단일 문자를 매치시킬 수 있음)

 

정규식을 잘 정리해두신 분이 있다 .. 자세한 건 참조하자

https://dadev.tistory.com/entry/MY-SQL-%EC%A0%95%EA%B7%9C%EC%8B%9D-REGEXP

 

[MY SQL] 정규식 (REGEXP)

REGEXP ?? REGEXP는 LIKE를 이용한 검색과 달리 Regular Expression(정규 표현식)를 이용해 검색한다. REGEXP를 사용하면 SQL에서 정규표현식을 활용하여 기본 연산자보다 복잡한 문자열 조건을 걸어 데이터를

dadev.tistory.com