오라클의 Regular Expressions을 정의 하면 아래와 같다
  • 유닉스의 정규식과 같음.
  • 강력한 Text 분석도구로서 Like 의 한계를 극복함.
  • Pattern-Matching-Rule의 정의가 자유로움.
  • 다양한 메타문자 제공.
Regular Expressions의 중요성은 아래와 같은 작업시 매우 증대된다
When
  • ETL/전환/이행.
  • Data Mining.
  • Data Cleansing.
  • 데이터 검증.
Regular Expressions의 기능은 다음과 같다
What
  • Text에서 특정 중복 단어의 확인
  • 특별한 상태에서 공백의 제거
  • 특정 문자의 파싱(parsing)
  • Text 에서 전화 번호, 우편 번호, 이메일 주소, 주민등록번호, IP 주소, 파일 이름, 경로 이름 등을 검증 및 추출이 가능
  • HTML 태그, 숫자, 날짜, 기타 특정 텍스트 데이터와 일치하는 패턴을 확인하고 다른 패턴으로 대체하는 것이 가능
  • Constraints 로 사용가능
이렇게 중요한 정규식(Regular Expressions)을 잘 모르거나 익숙치 못한 사람들을 위하여 개인적으로 정리한 파일을 올리니 이번기회에 반드시 정복하길 바란다.  의외로 고급 개발자들 중에 Regular Expressions의 사용을 꺼려하는 사람들이 많이 있는것 같다. 이 기능을 써야하는 경우임에도 쓰지 않는다면 코드는 길어질 것이며 유지보수 또한 힘들어 질것이다.
 
첨부파일에 정리된 내용은 다음과 같다 
  • 정규식 기본 Syntax.
  • 함수 사용법.
  • 정규식 고급 Syntax.
  • 11g New Features

주의 사항 :

  • 첨부된 파일에는 Oracle11g R1 까지의 내용을 정리한 것임.
  • 배포시에는 반드시 출처를 밝힐것.
  • Upload 시 200K 용량제한 때문에 파일을 2개로 분할 압축 하였으므로 모두 다운 받은후 압축을 풀면 됨.

오라클 Regular Expresssions 완전정복.alz

오라클 Regular Expresssions 완전정복1





오라클 Regular Expresssions 완전정복.a00

오라클 Regular Expresssions 완전정복2




 
사용자 삽입 이미지



Posted by extremedb

댓글을 달아 주세요

  1. 백면서생 2009.10.07 09:21  댓글주소  수정/삭제  댓글쓰기

    좋은 자료 공유해주셔서 감사합니다.

  2. 혈기린 2009.10.08 09:19  댓글주소  수정/삭제  댓글쓰기

    매번 좋은자료 좋은글 감사드립니다 ^^
    오늘도 많이 배우고 갑니다

  3. Favicon of https://ukja.tistory.com BlogIcon 욱짜 2009.10.08 09:55 신고  댓글주소  수정/삭제  댓글쓰기

    저 역시도 Regular Expression을 즐겨 사용하고 있습니다. 고맙죠. 오라클이 이런 기능을 내장해준다는 게. :)

    그리고 Google Document나 http://www.scribd.com/, http://www.slideshare.net/ 같은 곳을 이용해서 문서를 공유하는게 어떨까 합니다.

    • Favicon of https://scidb.tistory.com BlogIcon extremedb 2009.10.08 10:01 신고  댓글주소  수정/삭제

      그런 사이트가 있었군요.
      좋은 정보 감사합니다.
      영문 ppt 만 올려야 하나요?
      한글을 거기서 사용할수 있는지 궁금하네요.

  4. Favicon of https://ukja.tistory.com BlogIcon 욱짜 2009.10.08 10:43 신고  댓글주소  수정/삭제  댓글쓰기

    Google Document는 확실히 지원이 되는데 다른 경우에는 해봐야 알겠네요. 요즘은 국제화 지원이 보편적이라서 문제가 없을거 같긴 하지만 확인이 필요합니다.

  5. 만두돌이 2009.10.08 13:37  댓글주소  수정/삭제  댓글쓰기

    감사합니다. 정말 좋은 자료네요.^^
    열공 하겠습니다.

  6. 바우 2009.10.08 15:00  댓글주소  수정/삭제  댓글쓰기

    오동규 수석님 한가지 여쭤보겠습니다.
    데이터를 다음과 같이 만들고
    create table test as
    select '111-3333' data from dual union all
    select '11a-88gd' from dual union all
    select '031-469-8834' from dual union all
    select '(041) 11a 88gd' from dual union all
    select '045.3344.312' from dual union all
    select '111-234' from dual union all
    select '11-23' from dual union all
    select 'aaa-bvd' from dual union all
    select '041 867 1385' from dual union all
    select '011-9956-8209' from dual union all
    select '010-789-0987' from dual

    select *
    from test
    where regexp_like(data,'..-')
    이렇게 쿼리를 날리면 앞에 두자리가 있고 대시가 나오는 것 즉 11-23만 나와야 할 것 같은데 결과가 그렇게 나오지 않습니다. 제가 .의 용도를 잘 못 알고 있는것인지요. 따라해보면서 체득하려고 했는데 처음부터 막히네요.

    • Favicon of https://scidb.tistory.com BlogIcon extremedb 2009.10.08 15:19 신고  댓글주소  수정/삭제

      '..-' 를 like 로 사용하게되면 숫자나 문자가 연달아 2번 오고 그다음에 - 가 오는 패턴을 포함하는것을 모두 가져옵니다.
      즉 111-222 라는 표현은 '..-' 조건을 만족 하지요.
      문자 두개가 연달아 있고 - 가 그다음에 있는 패턴이기 때문에 결과가 그렇게 나온것입니다. 원하는 결과가 나오게 하려면 시작문자 ^ 와 종료문자 $를 사용하시면 됩니다.
      select *
      from test
      where regexp_like(data,'^..-..$');

  7. 바우 2009.10.08 15:03  댓글주소  수정/삭제  댓글쓰기

    9페이지에 쿼리는 3자리,3자리 혹은 3자리,3자리,4자리 이렇게 구성된 것을 찾는 것으로 보이는데
    가이딩 메시지에는 xxx-xxx-xxx 혹은 xxx-xxxx로 구성된다고 되어 있습니다.
    xxx-xxx-xxx가 xxx-xxx-xxxx로 바뀌어야 하는 것 같은데 그게 맞는 건가요?

  8. feelie 2009.10.09 09:42  댓글주소  수정/삭제  댓글쓰기

    좋은 내용감사합니다.
    정규식 관련해서 정리하기가 무척 힘들었었는데 이번에 확실히 정리할수 있겠네요...

  9. Favicon of http://sehaeng.tistory.com BlogIcon 쌩이~ 2009.10.13 17:55  댓글주소  수정/삭제  댓글쓰기

    내공이 많으신글들 감사합니다.

    시간없다는핑계로 어설프게본 정규식을

    이렇게 정리해서 공유해주시다니..

  10. 그와함께 2009.10.23 16:12  댓글주소  수정/삭제  댓글쓰기

    자료 공유에 관한 말씀이 있으시길래 알려드립니다.
    요즘 네이버 블로그는 포스트당 최대 10MB의 파일을 첨부할 수 있습니다.

    좋은 글에 늘 감사드리며.

  11. baind 2010.03.29 12:21  댓글주소  수정/삭제  댓글쓰기

    진심으로..감사드립니다....ㅠ_ㅠ