문제
아래의 SQL을 실행했을 경우 출력되지 않는 것은?
SQLREGEXP_LIKE(문자열, '^[^mw][[:lower:]]*[u]*day$', 'i')
① Monday ② Sunday ③ Friday ④ Saturday
정답
1번
해설
정답: 1. 정규식 ^[^mw][[:lower:]]*[u]*day$는 첫 글자가 m 또는 w가 아니어야 하고, 뒤에는 소문자가 0회 이상 반복된 뒤 u가 0회 이상 나오며 day로 끝나는 문자열을 찾는다. 옵션 'i'가 있으므로 대소문자는 구분하지 않는다. Monday는 첫 글자가 M이므로 [^mw] 조건을 만족하지 못해 출력되지 않는다.
오답 풀이
- 1번: Monday는 첫 글자가 M이므로 m 또는 w가 아닌 문자 조건을 만족하지 못한다.
- 2번: Sunday는 첫 글자가 S이고 day로 끝나므로 매칭될 수 있다.
- 3번: Friday는 첫 글자가 F이고 day로 끝나므로 매칭될 수 있다.
- 4번: Saturday는 첫 글자가 S이고 day로 끝나므로 매칭될 수 있다.
보충 개념
[^mw]는 m 또는 w가 아닌 문자 1개를 의미한다. 옵션 i가 있으면 대소문자를 구분하지 않으므로 M과 W도 제외 대상이 된다.