Microsoft PowerPoint - Regular Expresssions.ppt

Similar documents

Microsoft PowerPoint 웹 연동 기술.pptx

슬라이드 1

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE


DIY 챗봇 - LangCon

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

화판_미용성형시술 정보집.0305

<B3EDB9AEC1FD5F3235C1FD2E687770>

Microsoft PowerPoint - 27.pptx

강의 개요

PowerPoint 프레젠테이션

Solaris Express Developer Edition

PowerPoint 프레젠테이션

¾Ë·¹¸£±âÁöħ¼�1-ÃÖÁ¾

01....b

2007백서-001-특집

00목차

(291)본문7

PowerPoint Presentation

Columns 8 through while expression {commands} 예제 1.2 (While 반복문의이용 ) >> num=0

MySQL-.. 1

K7VT2_QIG_v3

쉽게 풀어쓴 C 프로그래밍

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4

텀블러514

KAA2005.9/10 Ãâ·Â

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

*세지6문제(306~316)OK

Index

PowerPoint Presentation


C# Programming Guide - Types

Database Search 편 * Database Explorer 8개의카테고리로구성되어있으며, 데이터베이스의폴더역할을하는 subset ( 혹은 subbase) 을생성하여데이터를조직및관리하게된다. 클릭! DNA/RNA Molecules : feature map의데이터

PowerPoint Template

8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 )

PowerPoint 프레젠테이션

PowerPoint Presentation

Microsoft Word - AM-SLCD_시리얼 LCD_ 메뉴얼.doc

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C4C656D70656C2D5A69762E637070>

Microsoft PowerPoint - Zebra ZPL 한글판 명령어 메뉴얼.ppt

4. #include <stdio.h> #include <stdlib.h> int main() { functiona(); } void functiona() { printf("hihi\n"); } warning: conflicting types for functiona

Microsoft PowerPoint - lect08

PHP & ASP

Microsoft PowerPoint 세션.ppt

USER GUIDE

EA0015: 컴파일러

Microsoft PowerPoint - lect08.ppt [호환 모드]

Microsoft PowerPoint - 26.pptx

윈도우즈프로그래밍(1)

2

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Remote UI Guide

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins

Microsoft PowerPoint - chap11.ppt [호환 모드]

Secure Programming Lecture1 : Introduction

ETL_project_best_practice1.ppt

WINDOW FUNCTION 의이해와활용방법 엑셈컨설팅본부 / DB 컨설팅팀정동기 개요 Window Function 이란행과행간의관계를쉽게정의할수있도록만든함수이다. 윈도우함수를활용하면복잡한 SQL 들을하나의 SQL 문장으로변경할수있으며반복적으로 ACCESS 하는비효율역

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호

10.ppt

Microsoft PowerPoint - PL_03-04.pptx

_KF_Bulletin webcopy

PowerPoint Presentation

지능정보연구제 16 권제 1 호 2010 년 3 월 (pp.71~92),.,.,., Support Vector Machines,,., KOSPI200.,. * 지능정보연구제 16 권제 1 호 2010 년 3 월

컴파일러

예제 1.1 ( 관계연산자 ) >> A=1:9, B=9-A A = B = >> tf = A>4 % 4 보다큰 A 의원소들을찾을경우 tf = >> tf = (A==B) % A

슬라이드 1

C++ Programming

LEET 추리논증 29번 유사 적중 - 기본교재 -P 다음 글로부터 추론한 것으로 옳은 것만을 에서 있 는 대로 고른 것은? 번역사 P는 고객 A, B, C로부터 문서를 의뢰받아 번역 일을 한 P는 하루에 10 쪽씩 번역한 모든 번역 의뢰는 매일 아침 업

<4D F736F F F696E74202D20C1A63135C0E520C0A520BDBAC5A9B7A1C7CE>

Microsoft PowerPoint - Perpect C 02.ppt [호환 모드]

로거 자료실

Data structure: Assignment 1 Seung-Hoon Na October 1, Assignment 1 Binary search 주어진 정렬된 입력 파일이 있다고 가정하자. 단, 파일내의 숫자는 공백으로 구 분, file내에 숫자들은

OR MS와 응용-03장

300 구보학보 12집. 1),,.,,, TV,,.,,,,,,..,...,....,... (recall). 2) 1) 양웅, 김충현, 김태원, 광고표현 수사법에 따른 이해와 선호 효과: 브랜드 인지도와 의미고정의 영향을 중심으로, 광고학연구 18권 2호, 2007 여름

KM-380BL,BLB(100908)

KNK_C02_form_IO_kor

Microsoft PowerPoint Relations.pptx

슬라이드 1

LCD Display

adfasdfasfdasfasfadf

PowerPoint 프레젠테이션

슬라이드 1

Visual Basic 반복문

gyuha.com/doku/doku.php?id=vim:vim_%EB%AA%85%EB%A0%B9%EC

CS322 중간고사.docx

ºÎ·ÏB

8장 문자열

2

Microsoft PowerPoint - ch13.ppt

JUNIT 실습및발표

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2


02 C h a p t e r Java


PowerPoint 프레젠테이션

Microsoft PowerPoint Predicates and Quantifiers.ppt

PowerPoint 프레젠테이션

C++-¿Ïº®Çؼ³10Àå

<C7CFB4C3B0F8BFF828C0FCC7CFC1F6B8F8C7D1C6EDC1F6292D31302E3128C3D6C1BE292D31302E31342E687770>

Transcription:

Oracle Regular Expressions 완전정복 오동규수석컨설턴트 1

오라클정규식이란? 강력한 Text 분석도구로서 Like 의한계를극복함. 유닉스의정규식과같음. Pattern-Matching-Rule 다양한메타문자제공. 2

Regular Expressions 정규식기본 Syntax. 함수사용법. 정규식고급 Syntax. 11g New Features 3

When ETL/ 전환 / 이행 Data Mining Data Cleansing 데이터검증 What 정규식의용도 중복단어의확인 특별한상태에서공백의제거 문자의파싱 (parsing) Text 에서전화번호, 우편번호, 이메일주소, 주민등록번호, IP 주소, 파일이름, 경로이름등을검증및추출 HTML 태그, 숫자, 날짜, 기타특정텍스트데이터와일치하는패턴을확인하고다른패턴으로대체하는것이가능 Constraints 로사용가능 4

Matching a Single Character.(dot) 는모든문자와 match 된다. 단엔터 (new line) 은예외임. SELECT emp_id, REGEXP_SUBSTR(text,'...-...') text FROM employee_comment WHERE REGEXP_LIKE(text,'...-...'); EMP_ID TEXT ---------- --------------- 7369 313-5351 7499 989-387- 7521 387-1698 989-387 387- 는의도되지않은결과이다. 5

Matching Any of a Set of Characters [] maching SET을이용하여숫자만나오게하자. SELECT emp_id, REGEXP_SUBSTR(text,'[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]') text FROM employee_comment WHERE REGEXP_LIKE(text,'[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]'); EMP_ID TEXT ---------- ------------- 7369 313-5351 7499 387-4321 7521 387-1698 같은표현 : [0123456789][0123456789][0123456789]-[0123456789][0123456789][0123456789][0123456789] [0123456789][0123456789][0123456789][0123456789] [0 [0-9] 를사용함으로써코딩량이줄어들었다. 하지만여전히 [0-9] 가반복되고있다. 6

Matching Any of a Set of Characters- 계속 Maching set 해석시주의사항 다음표현을해석하라 [01-3456-9] 0 이거나 1 에서 3 이거나 4 이거나 5 이거나 6 에서 9 인것 [.] 표현은문자하나를의미함을기억하자. 7

Matching Repeating Sequences Quantifier(repeat operator) {} 를이용하여 이용하여반복횟수를지정할수있다. SELECT emp_id, REGEXP_SUBSTR(text,'[0-9]{3}-[0-9]{4}') text FROM employee_comment WHERE REGEXP_LIKE(text,'[0-9]{3}-[0-9]{4}'); EMP_ID TEXT ---------- ------------- 7369 313-5351 7499 387-4321 7521 387-1698 Quantifier *? + {m} {m,} {m, n} 설명 0 회또는그이상횟수로매치 0 회또는 1 회매치 1 회또는그이상횟수로매치정확히 m 회매치최소한 m 회매치최소 m 회, 최대 n 회매치 8

다양한가능성을만족해야한다. XXX-XXXX 혹은 XXX-XXX-XXX 패턴이가능하다. 그리고구분자도 뿐만아니라, 나 SPACE 가올수있다. SELECT emp_id, REGEXP_SUBSTR(text, '[0-9]{3}[ 9]{3}[-. ][0-9]{3}[ 9]{3}[-. ][0-9]{4} 9]{4} [0 [0-9]{3}[ 9]{3}[-. ][0-9]{4}') text FROM employee_comment WHERE REGEXP_LIKE(text, '[0-9]{3}[ 9]{3}[-. ][0-9]{3}[ 9]{3}[-. ][0-9]{4} 9]{4} [0 [0-9]{3}[ 9]{3}[-. ][0-9]{4}') ; EMP_ID TEXT ---------- ------------- 7369 989 313-5351 7499 989-387-4321 7521 387-1698 7566 989.387.4444 7654 231-898-9823 7698 388-1234 7844 989-387.5359 7876 453-9999 는 OR 를의미함 9

Subexpressions 지역번호는괄호 () 가올수있고괄호는생략도가능하다. 또한지역번호자체도생략될수있다. SELECT emp_id, REGEXP_SUBSTR(text, '([0-9]{3}[-. ] \([0-9]{3}\) )?[0-9]{3}[-. ][0-9]{4}') text FROM employee_comment; EMP_ID TEXT ---------- --------------- 7369 989 313-5351 7499 989-387-4321 7521 387-1698 7566 989.387.4444 7654 231-898-9823 7698 (989) 388-1234 7782 7788 7839 7844 989-387.5359 7876 (231) 453-9999 7900 () 는 Grouping expression 을의미함.? 는생략되거나 1 번만올수있음. \ 는 ESCAPE 문자임. 10

Matching a Single Word 마지막 space 앞까지만출력하라 SELECT REGEXP_SUBSTR('Brighten the corner where you are', '.* ') text FROM dual; text ------------------------------ Brighten the corner where you 마지막 space 부터찾음을기억하라. 그렇다면첫번째 space 앞까지만출력하려면? 11

Check List Chapter 17 - Regular Expressions 첫번째단어를출력하라. Matching a Single Word SELECT REGEXP_SUBSTR('Brighten the corner where you are', '[^ ]*') text FROM dual; text ------------------------------ Brighten 12

Pattern Matching Modifiers Mod. i 설명대소문자를구분하지않는다. AbCd 가 return 예제 c n m x 대소문자를구분한다. (.) 는 default 로 new line 이 match 되지않으나 n 옵션을주면가능하다. multi-line mode 로검색이가능하다. 표현식의 whitespace 를무시하고 match 한다. REGEXP_SUBSTR('AbCd', 'abcd', 1, 1, 'i') 출력되지않음 : REGEXP_SUBSTR('AbCd', 'abcd', 1, 1, 'c') n 옵션을빼면매칭되지않음 : REGEXP_SUBSTR('a' CHR(10) 'd', 'a.d', 1, 1, 'n') ac 가 return, m 옵션을빼면매칭되지않음. REGEXP_SUBSTR('ab' CHR(10) 'ac', '^a.', 1, 2, 'm') abcd 가 return, 생략할경우출력되지않는다. REGEXP_SUBSTR('abcd', 'a b c d', 1, 1, 'x') 13

함수사용법 함수설명 REGEXP_LIKE: 정규표현에일치하는조건을검색 REGEXP_SUBSTR: 정규표현에일치하는부분문자열을 RETURN REGEXP_REPLACE: 정규표현에일치하는부분을지정한다른문자열로치환 REGEXP_INSTR: 정규표현에일치하는부분의위치값을 RETURN 사용법 (source, 표현식, Matching Modifiers ) (source, 표현식, 시작위치, 발생횟수, Matching Modifiers ) (source, 표현식, replace string, 시작위치, 발생횟수, Matching Modifiers) (source, 표현식, 시작위치, 발생횟수, return option, Matching Modifiers) 사용법의파란색인자는필수입력항목임. Optional 항목을추가할경우왼쪽부터추가할수있음. REGEXP_INSTR 는특이하게 RETURN OPTION 이있다. 0 은시작위치를 RETURN 1 은종료위치를 RETURN 한다. DEFAULT 는 0 임. 14

Using Backreferences Backreference 와 REGEXP_REPLACE를이용하여 Ellen Hildi Smith 라는이름을 SPACE 1 칸으로구분해서각각 Smith, Ellen Hildi로변환하라. SELECT REGEXP_REPLACE( 'Ellen Hildi Smith', '(.*) (.*) (.*)', '\3, \1 \2') TEXT FROM dual TEST ------------------ Smith, Ellen Hildi 15

Using Named Character Classes Character Class [:alpha:] [:lower:] [:upper:] [:digit:] [:alnum:] [:space:] [:punct:] [:cntrl:] [:print:] 설명 알파벳문자소문자알파벳문자대문자알파벳문자숫자알파벳 / 숫자출력되지않는공백문자 (carriage return, newline, vertical tab, form feed) 등구두점기호 ( 출력되지않는 ) 컨트롤문자출력가능한문자 16

REGEXP_LIKE Data 검증예제 : 우편번호컬럼에서숫자가아닌문자가포함되어있는 row 를찾아라. SELECT zip FROM zipcode WHERE REGEXP_LIKE(zip, '[^[:digit:]]') ZIP ----- ab123 123xy 007ab abcxy 17

REGEXP_INSTR Data 에서특정위치찾기 : SOURCE 에서숫자 XXXXX 로끝나거나 XXXXX-XXXX 로끝나는지점의위치를찾아라. SELECT REGEXP_INSTR( 'Joe Smith, 10045 Berry Lane, San Joseph, CA 91234-1234', ' [[:digit:]]{5}(-[[:digit:]]{4})?$ [[:digit:]]{4})?$ ) AS starts_at FROM dual STARTS_AT ---------- 44 Quantifier *? + {m} {m,} {m, n} 설명 0 회또는그이상횟수로매치 0 회또는 1 회매치 1 회또는그이상횟수로매치정확히 m 회매치최소한 m 회매치최소 m 회, 최대 n 회매치 18

REGEXP_SUBSTR Data 에서특정부분발췌하는예제 : comma를검색하고그뒤에 space 한번이나오고계속하여 comma가아닌문자가 1 회또는그이상반복되는패턴을검색한후마지막으로또다른쉼표를검색해야한다. SELECT REGEXP_SUBSTR( 'first field, second field, third field', ', [^,]+, ) as test FROM dual TEST ------------------, second field, 19

REGEXP_REPLACE Data 에서특정부분을제거하여발췌하는예제 : 아래 source 에서 Space 2칸이상을 space 1 칸으로만들어라. SELECT REGEXP_REPLACE( 'Joe Smith', '( ){2,}' ' ') AS RX_REPLACE FROM dual RX_REPLACE ---------- Joe Smith 이것을 REPLACE 함수를사용할경우아래처럼나타낼수있다. SELECT REPLACE('Joe Smith', ', ' ') AS REPLACE FROM dual 하지만 SPACE 2칸을지정하였기때문에 3칸이상은수행되지않는다. 20

REGEXP_COUNT Data 에서특정부분이반복되는 COUNT 를 RETURN 한다. SELECT REGEXP_COUNT( http://scidb.tistory.com,.', 1, 'i') AS "Count TEST" FROM dual ; 11g New feature Count TEST ---------- 2 문법 (source, 표현식, 시작위치, Matching Modifiers ) 10g 에서구현하기. LENGTH(string) - LENGTH(REPLACE(string, i')) 21

Subexpression to Return 파라미터 () 를이용하여 return 되는집합을선택할수있다. Subexpression 중에서 2 번째집합을 return 하라. SELECT REGEXP_SUBSTR( 'www.oracle-developer.net', '(\.)([a-z-]+)(\.)', --> subexpressions 을사용한표현식 1, --> 시작위치 1, --> 발생횟수 'i', --> Matching Modifiers 2 --> 11g: subexpression to return ) AS url_middle_11g FROM dual; URL_MIDDLE_11G ---------------- oracle-developer 11g New feature REGEXP_SUBSTR 와 REGEXP_INSTR 만가능함 10g 에서구현하기 : REPLACE( REGEXP_SUBSTR('www.oracle-developer.net', \.[a.[a-z-]+ ]+\.'), '.') 22

정리 1.Dot 사용법 2.[] maching set 사용법 3.{} 를이용하여반복횟수제어하기 4. 를이용하여다양한조건만족하기 5.Subexpression () 를이용하여 group 표현식으로나타내기 6. Anchoring( 시작및종료 ) 문자이용하기 7.Matching a Single Word 23

Check List Chapter 17 - Regular Expressions 정리 Pattern Matching Modifiers REGEXP_INSTR REGEXP_LIKE REGEXP_REPLACE REGEXP_SUBSTR REGEXP_COUNT 24

Check List Chapter 17 - Regular Expressions 정리 1.Using Backreferences 2.Using Named Character Classes 3.11g New Features REGEXP_COUNT Subexpression to Return 파라미터 4.REGEXP_LIKE와 REGEXP_COUNT를제외하면 Function Based Index 를만들수있고 Constraint 로활용가능하다. 25

별첨 정규식 Metacharacters 정리.doc 감사합니다. 26