메타 문자  설명


 
\v  : 수직 탭


\n  : 개행


\f   : 폼 피드


\r   : 캐리지 리턴


\t   : 탭


\b  : 백스페이스


\d  : [0-9]와 동일한 기능

 

\D  : [^0-9]와 동일한 기능


\w  : [a-zA-Z0-9_]와 동일한 기능

 

\W : [^a-zA-Z0-9_]와 동일한 기능  

 

\s  : [\f\n\r\t\v]와 동일한 기능

 

\S  : [^\f\n\r\t\v]와 동일한 기능 

 

\x  : 16진수 숫자와 일치

 

\0  : 8진수 숫자와 일치

 

+ : 문자가 하나 이상 있으면 일치

 

* : 문자가 없거나, 하나 이상 있으면 일치

 

? : 문자가 없거나, 하나만 있으면 일치

 

 

 

 

정규 표현식(正規表現式, 영어: regular expression, 간단히 regexp[1] 또는 regex) 또는 정규식(正規式)은 특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 형식 언어이다.

 

정규 표현식은 많은 텍스트 편집기와 프로그래밍 언어에서 문자열의 검색과 치환을 위해 지원하고 있으며, 특히 펄과 Tcl은 언어 자체에 강력한 정규 표현식을 구현하고 있다.

 

컴퓨터 과학의 정규 언어로부터 유래하였으나 구현체에 따라서 정규 언어보다 더 넓은 언어를 표현할 수 있는 경우도 있으며, 심지어 정규 표현식 자체의 문법도 여러 가지 존재하고 있다.

 

수많은 프로그래밍 언어가 정규 표현식 기능을 제공하고 있으며, 일부는 펄, 자바스크립트, 루비, Tcl처럼 기본 내장되어 있는 반면 닷넷 언어, 자바, 파이썬, POSIX C, C++ (C++11 이후)에서는 표준 라이브러리를 이용하여 구현한다.

 

그 밖의 대부분의 언어들은 라이브러리를 통해 정규식을 제공한다.

 

링크 - 출처 - 위키백과

 

 

 

 

'IT TIP > Web' 카테고리의 다른 글

HTML / Script 연습장  (0) 2017.04.13
MARQUEE 태그  (0) 2017.04.13
HTML Tag 설명  (0) 2017.04.13

 

[Oracle] 사용자정의 SPLIT함수. 예제

 

 

 

..

CREATE OR REPLACE FUNCTION AHRANG.GET_SPLIT(
    IN_STR IN VARCHAR2,
    IN_DEL IN VARCHAR2 DEFAULT ','
)
RETURN VAR_ARRAY PIPELINED
/****************************************************************
  IN_STR 을 IN_DEL 구분으로 분리하여여 1차원 배열로 리턴
  
 TYPE 생성 
 =>  CREATE OR REPLACE TYPE VAR_ARRAY AS TABLE OF VARCHAR2(1000);
 
 사용
 => SELECT * FROM TABLE(GET_SPLIT('ABC DEF 이름 네임 없음' ,' '))
  
*****************************************************************/
AS 
   V_IDX  INTEGER := 0;
   V_STR  VARCHAR2(32767) := IN_STR;
   
   BEGIN
        LOOP
            V_IDX := INSTR(V_STR , IN_DEL );
            IF (V_IDX > 0 ) THEN
                PIPE ROW(TRIM(SUBSTR(V_STR ,1,V_IDX-1)));
                V_STR := TRIM(SUBSTR(V_STR ,V_IDX + LENGTH(IN_DEL)));
            ELSE
                PIPE ROW(TRIM(V_STR));
                EXIT;
            END IF;
            
        END LOOP;
   
   END;


.

 

 

 

 

 

 

 

 

 

 

[Oracle]REGEXP_SUBSTR함수로.SPLIT하기

 

 

..

WITH X AS
( SELECT 'NAVER' AS USER_ID ,'NA1,NA2,NA3,NA4,NA5,NA6,' AS RE_CODE FROM DUAL
   UNION ALL
  SELECT 'NAVER1' AS USER_ID ,'NA7,NA8,NA9,NA10' AS RE_CODE FROM DUAL

)

SELECT REGEXP_SUBSTR(A.RE_CODE, '[^,]+', 1, B.LV) AS RE_CODE
  FROM X A
      ,(SELECT LEVEL LV FROM DUAL CONNECT BY LEVEL <= 100) B
 WHERE 1 = 1
   AND B.LV <= REGEXP_COUNT(A.RE_CODE, ',') + 1
   AND UPPER(A.USER_ID) = 'NAVER'
  ;


.



1. 테이블 X의 데이타

 

 No

 USER_ID

 RE_CODE 

 1

 NAVER

 NA1,NA2,NA3,NA4,NA5,NA6,

 2

 NAVER1 NA7,NA8,NA9,NA10






쿼리 실행 결과

 

 No

 RE_CODE 

1

 NA1

2

 NA2

3

 NA3

4

 NA4

5

 NA5

6

 NA6

7

 







+ Recent posts