REGEXP_SUBSTR 질문요 1 3 2,718

by 선모 mo0562 [2010.05.19 10:56:46]


어제 마농님 퀴즈 풀다가.. 정규식에.. 빠져서 열실히 보고 있는 1인 입니다. ㅋㅋ

SELECT
REGEXP_SUBSTR('The final test is is the implementation', '([[:alnum:]]+)([[:space:]]+)\1') AS substr FROM dual

여기서 \1 앞에 괄호를 반복하는거 같은데..


SELECT REGEXP_SUBSTR('The final test is is the implementation', '([[:alnum:]]+)([[:space:]]+)([[:alnum:]]+)') AS substr FROM dual

이거랑 똑같을 거라고 생각했는데..  틀린 결과가 나오는데..

왜그런지 도통 모르겠네요.. 첫번재 결과는 is is 가 나오는데.. 두번째 결과는 The final 이게 나와요..

왜그런지 도통 모르겟네요.. 문자숫자조합에 +가 한번이상이니까.. 제 생각에는

첫번재도 The final 된다고 생각하는데... 점점 미궁으로 빠지네요.. 도와주세요..

아직 개념에서.. 헤메는것 같네요.. 아~ 답답하네요..
by proud [2010.05.19 11:24:17]

by 마농 [2010.05.19 11:25:50]
\번호는 앞의 괄호의 번호입니다.
괄호가 두개 있으니 \1 은 ([[:alnum:]]+)의 패턴을 갖는 문자열을 의미하구요.
뒤에 다시 쓰신 ([[:alnum:]]+) 은 앞의 문자열을 뜻하는게 아니라 새로운 패턴을 의미하죠.
즉 처음 문장은 문자열 + 공백 + 앞의문자열이 다시 오는 경우. is is
두번째 문장은 문자열 + 공백 + 문자열 입니다. The final

by 선모 [2010.05.19 11:39:27]
마농님 정말 명확한 답변 감사합니다..

대단하세요.. ㅎㅎ
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입