- SQL  Regex(Regular expression )

 

https://dev.mysql.com/doc/refman/8.0/en/regexp.html

 

    - 예)

SELECT  'test123' REGEXP '^[\\"\\,a-zA-Z\\[\\] ]+$';

SELECT  REGEXP_LIKE( 'test123' ,  '^[\\"\\,a-z\\[\\] ]+$' , 'i');

 

    - 이스케이핑을 위한 백슬래쉬 문자(\)는 2번 쓴다

 

    - REGEXP , RLIKE , REGEXP_LIKE 는 모두 같은 기능

    - NOT REGEXP : REGEXP에 NOT 적용

    - REGEXP_LIKE 3번째 인자에 옵션을 줄수있다.

        - c: 대소문자 구분

        - i:  대소문자 구분 안함

        - m: 멀티 라인 모드



//--------------------------------------------

< 함수 > 

 

* REGEXP_INSTR(소스 문자열, 정규식 패턴, 검색 시작 위치, 발견된 수치)    

    - 찾은 위치 리턴

 

SELECT REGEXP_INSTR('aa aaa aaaa', 'a{4}'); 

    => 8



//-------------------

* REGEXP_REPLACE(소스 문자열, 정규식 패턴, 교체할 문자열, 검색 시작 위치, 발견된 수치)     

    - 문자열 교체

 

SELECT REGEXP_REPLACE('abc def ghi', '[a-z]+', 'X', 1, 3);

    =>  abc def X   



//-------------------

* REGEXP_SUBSTR(소스 문자열, 정규식 패턴, 검색 시작 위치, 발견된 수치 )  

    - 문자열 추출

 

SELECT REGEXP_SUBSTR('abc def ghi', '[a-z]+', 1, 3); 

    => ghi  




Posted by 코덴스

댓글을 달아 주세요