회사에서 쿼리 작성할 일이 많다보니, 수습 종료 발표와 함께 지난 주에 SQLD 시험을 응시했었고 그 때 정규표현식은 대충 공부하고 봤었다.
시험 때문에 회사 쿼리는 대충 프로젝트 마무리 할 정도로만 쓰윽 보고 끝나고 찬찬히 봐야지 했는데... 좀 더 열심히 볼 걸 그랬다..
시험 끝나고 이번 주에는 쿼리를 집중적으로 확인하고 있는데.. 아니 웬걸.. SQLD에서 본 함수가 그대로 있는게 아닌가.. 심지어 시험볼 때 이게 뭐람 하고 찍었는데..ㅎ
그래서 이번 기회에 정규 표현식을 제대로 짚고 넘어가고자 포스팅을 하게 되었다.
REGEXP_REPLACE (source_char, pattern
[, replace_string
[, position
[, occurrence
[, match_param[[[
)
[ 예시 ]
REGEXP_REPLACE(Source_Char, 'M{(.*?)}D{(.*?)}P{(.*?)}', '\2')
M{}: M으로 시작하고 {}로 둘러싸인 내용이 있다.
D{}: D로 시작하고 {}로 둘러싸인 내용이 있다.
P{}: P로 시작하고 {}로 둘러싸인 내용이 있다.
'\2'는 정규 표현식에서 찾은 매칭 그룹 중 두 번째 그룹을 의미
첫 번째 M{...}와 P{...} 부분은 무시되고, 두 번째 D{...} 안의 내용만 추출된다.
(.*?)는 모든 문자를 최소한으로 일치시키는 정규표현식