"오라클 정규식"의 두 판 사이의 차이
DB CAFE
(→REGEXP_SUBSTR) |
(→정규식 표기법) |
||
8번째 줄: | 8번째 줄: | ||
? : 0 또는 1개 일치 (zero or one) | ? : 0 또는 1개 일치 (zero or one) | ||
. : NULL을 제외한 모든 문자와 일치 | . : NULL을 제외한 모든 문자와 일치 | ||
− | 파이프 : OR | + | |파이프 : OR |
[ ] : [ ]에 있는 문자 중 하나를 일치시키려는 목록을 지정 | [ ] : [ ]에 있는 문자 중 하나를 일치시키려는 목록을 지정 | ||
[^ ] : [ ]에 있는 문자를 제외한 모든 문자를 일치시키려는 리스트 지정 | [^ ] : [ ]에 있는 문자를 제외한 모든 문자를 일치시키려는 리스트 지정 | ||
34번째 줄: | 34번째 줄: | ||
{n,m}? :앞선 패턴이 적어도 n번 ~ m번 이하 일치 | {n,m}? :앞선 패턴이 적어도 n번 ~ m번 이하 일치 | ||
}} | }} | ||
+ | |||
== 정규식 예시 == | == 정규식 예시 == | ||
2020년 11월 18일 (수) 15:42 판
thumb_up 추천메뉴 바로가기
- DBA { Oracle DBA 명령어 > DBA 초급 과정 > DBA 고급 과정 }
- 튜닝 { 오라클 튜닝 목록 }
- 모델링 { 데이터 모델링 가이드 }
2 정규식 예시[편집]
2.1 REGEXP_REPLACE[편집]
WITH T AS (
SELECT '김, 수 영' NAME FROM DUAL
UNION ALL SELECT 'KIM/SUYOUNG' FROM DUAL
UNION ALL SELECT 'KIM suYOUNG' FROM DUAL
UNION ALL SELECT 'KIM su YOUNG' FROM DUAL
UNION ALL SELECT 'KIM su,YOUNG' FROM DUAL
UNION ALL SELECT 'KIM,su/YOUNG' FROM DUAL
UNION ALL SELECT '김 수한무 거북이와 두루미 삼천갑자 동방석' FROM DUAL
UNION ALL SELECT 'lee dkd dkdk dkdkd kd dkdkdkd 1 2 2' FROM DUAL
)
SELECT REGEXP_SUBSTR(NAME, '[^ /,]+', 1) 성
, REGEXP_REPLACE(NAME, '([^ /,]+)([^가-힣a-zA-Z]+)([^/,-]+)', '\3\4\5') 이름
FROM T;
2.2 REGEXP_SUBSTR[편집]
SELECT REGEXP_SUBSTR('test@domain.com', '[^@]+', 1, 1) AS EMAIL_ID
, REGEXP_SUBSTR('test@domain.com', '[^@]+', 1, 2) AS EMAIL_DOMAIN
FROM REG_EXP_TEST
- COLUMN TO ROW (컬럼 => 로우)
SELECT TRIM(REGEXP_SUBSTR('02,031,032','[^,]+',1,LEVEL)) AS LIST_TO_ROW
FROM DUAL
CONNECT BY INSTR('02,031,032', ',', 1, LEVEL-1 ) > 0
2.3 REGEXP_LIKE[편집]
WITH TEMP_TABLE AS (
SELECT 'Samsung Galaxy Note 4' TEXT FROM dual union all
SELECT 'Apple iPhone 6 Plus' TEXT FROM dual union all
SELECT 'Samsung Galaxy S5' TEXT FROM dual union all
SELECT 'Apple iPhone 6' TEXT FROM dual union all
SELECT 'LG G3' TEXT FROM dual union all
SELECT 'SonyXperia Z3' TEXT FROM dual union all
SELECT 'Motorola Moto G' TEXT FROM dual union all
SELECT 'HTC One M8' TEXT FROM dual union all
SELECT 'Nokia Lumia 930' TEXT FROM dual
)
SELECT *
FROM TEMP_TABLE
WHERE REGEXP_LIKE(TEXT, 'Samsung|Apple|Nokia')
- 다건 검사
REGEXP_LIKE(TOBE_COL_NM, '_AMT|_AMT2|_CPM|_PNT|_QTY|_RT|_VAT')