IT study

[SQLD] 오라클 정규표현식 본문

자격증/SQLP (완료)

[SQLD] 오라클 정규표현식

DBnA 2025. 2. 10. 17:56
728x90
반응형

sqlp 공부하다 2과목에서 헷갈려서 정리

SELECT --regexp_substr(대상문자열, 정규식패턴, [문자열 시작위치],[패턴 일치 순번])
      /* 뮨자열 찾기 */  
       REGEXP_SUBSTR('oracle database', 'oracle')   AS reg1
     , REGEXP_SUBSTR('oracle database', 'database') AS reg2
     , REGEXP_SUBSTR('oracle database', 'sql')      AS reg3
    /*. 임의의 한문자 (.. 2개의 문자) */ 
     , REGEXP_SUBSTR('oracle database', '.')       AS reg4
     , REGEXP_SUBSTR('oracle database', '.', 1, 2) AS reg5
     , REGEXP_SUBSTR('oracle database', '.', 2, 3) AS reg6 
     , REGEXP_SUBSTR('oracle database', '..', 1, 3) AS reg7 --.개수만큼 한문자취급
     
      /* | : OR 동일 , | 기준 왼쪽 또는 오른쪽과 일치, 문자열시작위치는 전체 문자열기준, 패턴일치순번은 패턴에 맞는 애부터 */
     ,  REGEXP_SUBSTR('oracle database', 'a|b|c') AS reg8
     , REGEXP_SUBSTR('oracle database', 'a|b|c', 1, 2) AS reg9  --acaaba 일치하므로 2번째값인 c
     , REGEXP_SUBSTR('oracle database', 'a|b|c', 1, 3) AS reg10 --acaaba 일치하므로 3번째값인 a
     
     /* [] : 문자 클래스 : 대괄호 내 문자하나하나가 OR로 인식 | 동일*/
     , REGEXP_SUBSTR('oracle database', '[abc]')       AS reg11
     , REGEXP_SUBSTR('oracle database', '[abc]', 1, 2) AS reg12
     , REGEXP_SUBSTR('oracle database', '[abc]', 1, 3) AS reg13
     
     /* [-] : 문자 범위 (0-9, a-z, A-Z, 가-힝) : [a-b] = [abc]*/
     , REGEXP_SUBSTR('oracle database', '[a-c]')       AS reg14
     , REGEXP_SUBSTR('oracle database', '[a-c]', 1, 2) AS reg15
     , REGEXP_SUBSTR('oracle database', '[a-c]', 1, 3) AS reg16
     
     /* [^] : 부정 문자 클래스 , 해당 문자를 제외한 문자내에서 하나만 반환 */
     , REGEXP_SUBSTR('oracle database', '[^abc]')       AS reg17
     , REGEXP_SUBSTR('oracle database', '[^abc]', 1, 2) AS reg18
     , REGEXP_SUBSTR('oracle database', '[^abc]', 1, 3) AS reg19
     
     /* \ : 메타문자를 일반 문자로 */
     , REGEXP_SUBSTR('oracle database [21c]', '[21c]')   AS reg20 --2 OR 1 OR c 중 처음나오는 문자
     , REGEXP_SUBSTR('oracle database [21c]', '\[21c\]') AS reg21 --[21c] 문자 찾아 반환
     
     /* ^ : 문자열의 시작과 일치하는 문자열을 찾는다 */
     , REGEXP_SUBSTR('oracle database', '^oracle')   AS reg22
     , REGEXP_SUBSTR('oracle database', '^database') AS reg23
     
     /* $ : 문자열의 끝과 일치하는 문자열을 찾는다 */
     , REGEXP_SUBSTR('oracle database', 'oracle$')   AS reg24
     , REGEXP_SUBSTR('oracle database', 'database$') AS rege25
  FROM dual;

 
 
결과

 
 
참조: https://gent.tistory.com/546

728x90
반응형