* 정규표현식(REGEXP)란?
오라클 10g 이상에서 사용가능한 REGEXP(Regular Expression ) 함수는
정규표현식이라고 하며 특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 형식 언어입니다.
문자열을 처리하는 방법 중의 하나로 특정한 조건의 문자를 검색하거나 치환하는 과정을 처리해줍니다.
* 정규표현식 사용하는 이유
많은 양의 데이터에서 어떤 조건으로 검색을 하거나 특정문자의 값을 변환할 때 사용하게 됩니다.
패턴(정규표현식)을 개별적으로도 사용가능하지만, 혼합해서 사용하여 효과적으로 값을 변환 및 검색가능합니다.
또한 회원가입시에 패스워드조합이나 이메일형식을 규칙적으로 받기위해서 사용도 많이 됩니다.
조건문을 사용하여 문자열을 검열할수도 있지만 정규표현식으로 간단히 회원가입정보를 검열할 수 있습니다.
REGEXP 함수의 종류로 각 문법의 설명입니다.
* REGEXP_LIKE : LIKE 연산과 비슷하며 정규식 패턴을 검색합니다.
* REGEXP_REPLACE : 정규 표현식을 대상으로 다른 문자로 대체합니다.
* REGEXP_INSTR : 문자열을 검색하고 일치항목의 위치를 반환합니다.
* REGEXP_SUBSTR : 정규식 패턴과 일치하는 문자열을 반환합니다.
* REGEXP_COUNT : 정규식 패턴을 검색하여 발견된 횟수를 반환합니다.
(11버전 이상 사용가능)
이론만 보았을 때는 뭔가 비슷비슷해서 헷갈릴 수 있으니 아래 설명과 예제를 보시면 이해하기 쉽습니다.
먼저, 정규표현식 패턴은 매우 다양하므로 자주 사용되는 패턴을 어느정도 정리한 표입니다.


-------------------------------------------------------------------------------------------------------------------------------------------
* REGEXP_LIKE( string, patter [,matching parameter ] )
* REGEXP_LIKE( 문자열, 정규식패턴, [매칭 매개변수])
- string : 소스 문자열
- pattern : 특정 문자를 다양한 pattern으로 검색하는 것이 가능
- matching parameter : 매치 할떄의 옵션, 대소문자 구분 등

34로 시작하며 뒤에 A또는 B가 오는 글자를 검색했습니다.
-----------------------------------------------------------------------------------------------------------------------------------------------------
* REGEXP_REPLACE( string, pattern [, repacement_string [, start_position [, nth_appearance [, matching parameter ] ] ] ] )
* REGEXP_REPLACE( 문자열, 정규식패턴 [, 대체문자열 [, 시작위치 [, 일치횟수 [, 매칭 매개변수] ] ] ] )
- string : 문자열
- patter : 정규식패턴
- replacement_string : 변환하고자 하는 형태
- start_position : 검색시작위치를 지정 ( 기본값 1)
- nth_appearance : n번째 일치된 문자열 (기본값 0)
- matching parameter : 매칭 매개변수


숫자로 된 값을 #으로 바꾸는 정규식
start_position 은 어디서부터 검색할건지를 정하는 변수입니다 1로 입력했을시 맨앞글자인 '대' 부터 스캔합니다
2로 입력하면 '한' 부터 시작합니다.
nth_appearance 는 몇번째 검색된 문자를 처리할지를 확인하는 변수입니다.
위 문구에서 숫자값은 1,2,3인데 0을 입력하면 1과2,3 전부 #으로 바꾸라는 뜻이고 1을 입력할시 1A2B3C중 1만 #으로 바꾼다는 뜻이됩니다.
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
* REGEXP_INSTR ( string, patter [, start_position [, nth_appearance [, return_option [, matching parameter ] ] ] ] )
* REGEXP_INSTR ( 문자열, 정규식패턴 [, 시작위치 [, 일치횟수 [, 반환할 문자위치 [, 매칭 파라미터 ] ] ] ] )
- string : 문자열
- pattern : 정규표현식
- start_position : 검색시작위치(기본값 1)
- return_option : 발생값의 첫번째 위치를 반환(기본값 1)
- matcing parameter : 매칭 매개변수

안녕하세요 중 '녕' 의 문자가 몇번째에 있는지 반환하는 기능입니다.
앞에서 2번째로 있으니 2를 반환합니다.
-------------------------------------------------------------------------------------------------------------------------------------------------------------
* REGEXP_SUBSTR ( string, patter [,start_position [, nth_appearance [, match_parameter ] ] ] )
* REGEXP_SUBSTR ( 문자열, 정규식패턴 [, 시작위치 [, 일치횟수 [, 매칭파라비터 ] ] ] )
- string : 문자열
- pattern : 정규표현식
- start_position : 검색시작위치 (기본값1)
- nth_appearance : 몇번째 일치된 문자열 대체 (기본값0)
- matching parameter : 매칭 매개변수

------------------------------------------------------------------------------------------------------------------------------------------------------
* REGEXP_COUNT( string, pattern [, start_position [, nth_appearance [, match parameter ] ] ] )
* REGEXP_COUNT ( 문자열, 정규식패턴 [, 시작위치 [, 일치횟수 [, 매칭파라미터 ] ] ] )

'123' 이 몇번 나오는지 출력하는 문구입니다.

정규표현식 . 은 모든문자를 말합니다.
문자가 몇번 나오는지 출력하는 문구입니다. 띄어쓰기도 포함하여 출력합니다.
---------------------------------------------------------------------------------------------------------------------------------------
여기까지 정규표현식 6가지에 대해서 설명 및 예제문제를 보여드렸습니다.
정규표현식 패턴을 보면서 직접 코드를 처보시면 습득이 쉬울거라고 생각합니다.
[, ] [, ] 등 괄호로 묶인 곳은 생략가능한 부분입니다.
긴글 읽어주셔서 감사합니다.
'데이터베이스 > ORACLE' 카테고리의 다른 글
[ORACLE] 오라클 비교연산자 <> ! = (0) | 2023.01.13 |
---|---|
[ORACLE] 오라클 CURSOR 커서 (묵시적커서, 명시적커서) (0) | 2023.01.13 |
[ORACLE] 오라클 SYSDATE 사용법(현재시간값) (0) | 2021.04.12 |
[ORACLE] 오라클 NVL(NVL2) 사용법 (0) | 2021.04.12 |
[ORACLE] 오라클 DECODE 사용법 (0) | 2021.04.12 |