문제
다음 SQL의 실행 결과로 가장 적절한 것은?
SQLSELECT REGEXP_SUBSTR('aabbc', 'a*b+c') AS R1, REGEXP_SUBSTR('abbc', 'a*b+c') AS R2 FROM DUAL;
① aabbc, abbc ② abbc, aabbc ③ NULL, abbc ④ aabbc, NULL
정답
1번
해설
정답: 1. a*는 a가 0회 이상, b+는 b가 1회 이상 반복됨을 의미하므로 aabbc와 abbc가 각각 매칭된다.
오답 풀이
- 1번: 두 문자열 모두 패턴에 매칭된다.
- 2번: 결과 순서가 반대이다.
- 3번: aabbc도 패턴에 매칭된다.
- 4번: abbc도 패턴에 매칭된다.
보충 개념
정규표현식에서 *는 0회 이상 반복, +는 1회 이상 반복을 의미한다. 패턴 전체가 문자열 일부와 매칭되면 REGEXP_SUBSTR은 해당 부분 문자열을 반환한다.