일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Openlayers
- input
- htmlFor
- createtextnode
- createElement
- Append
- boolean
- appendChild
- Let
- FOR
- VAR
- const
- 학습법 #집중력
- Today
- Total
Atomic Habits
[Oracle, postgreSQL] 정규식 REGEXP_REPLACE 함수 본문
참조 : https://neocan.tistory.com/348 (정규식 문법)
참조: https://lee-mandu.tistory.com/40 (Replace 옵션)
참조 : https://runebook.dev/ko/docs/postgresql/functions-matching (정규식 문법 상세)
이 함수는 replace 함수를 확장한 개념으로 주어진 문자역에서 특정 패턴을 찾아서 주어진 다른 모양으로 치환하는 함수이다.
문법
REGEXP_REPLACE (source_char, pattern
[, replace_string
[, position
[, occurrence
[, match_param[[[
)
첫번째 인수 Source_char
: 원본데이터, 컬럼명이나, 문자열이 올수 있다.
두번쨰 인수 pattern
: 찾고자 하는 패턴을 의미
세번째 인수 replace_string
: 변환하고자 하는 형태
네번째 인수 position
: 검색 시작 위치를 지정, 아무런 값도 주지 않을 경우 기본값 : 1
다섯 번째 인수 occurrence
: 패턴과 일치가 발생하는 횟수를 의미, 0은 모든 값을 대채, 다른 n이란 숫자를 주면 n번째 발생하는 문자열을 대입
여섯 번째 인수 match_parameter
: 기본값으로 검색되는 옵션을 바꿀수 있다.
- c : 대소문자를 구분해서 검색
- i : 대소푼자를 구분하지 않고 검색
- m : 검색 조건을 여러 줄로 줄 수 있음
- c와 i가 중복으로 설정되면 마지막에 설정된 값을 사용 ex) ic가 중복으로 절정되면 c 옵션 적용
REGEXP_REPLACE 함수 실습
모든 숫자를 특수 기호로 변경하기
SELECT text, regexp_replace(text, '[[:digit:]]', '+') "숫자->기호" FROM TEST
특정 패턴을 찾아서 패턴을 추가하기
SELECT text, regexp_replace(text, '([0-9])', '\1*') "숫자->패턴" FROM TEST
지역번호가 2자리이고 전화국번이 4자리인 전화번호인 학생 찾기
SELECT NAME, tel FROM student
WHERE regexp_replace(tel, '(\d{2})\)(\d{4})\-(\d{4})','\2') > '5000'
전공이 101번인 학생의 이름 변경하기 (홍-길-동)
SELECT name, RTRIM(regexp_replace(name, '(.)', '\1-'), '-') "변경후" FROM student
WHERE deptno1=101
특정 문자열을 다른 형태로 바꿀때
SELECT REGEXP_REPLACE('20120324',
'([[:digit:]]{4})([[:digit:]]{2})([[:digit:]]{2})',
'\1 : \2 : \3') FROM dual
'IT > Regular Expressions' 카테고리의 다른 글
정규식 간단 강좌 1-8편 (0) | 2021.11.24 |
---|---|
정규 표현식 (좀 더) 깊이 알아보기 (0) | 2021.11.24 |
풀어 쓴 정규식 (0) | 2021.11.24 |
[JAVA] 정규식/정규표현식 (0) | 2021.11.22 |
정규식 전후방탐색(vim 포함) (0) | 2021.11.20 |