regexp_replace로 텍스트 중간 없애는 방법... 0 6 553

by ffgg34 [SQL Query] regexp regexp_replace [2020.01.31 13:06:26]


안녕하세요 데이터 변환 작업중

정규식에 관해 궁금한점이 생겼습니다

 

제게

제주도 노형동 1111 (b-12)aaa아파트 111

이런식의 데이터가 있는데요

괄호와 괄호안의 내용을 지우고 싶어서 알아봤지만 되질 않아서.. 제대로 변환하는 방법을 알고싶습니다 

regexp_replace(v, '[^(][)$]', '')

이렇게 작성하면 뒤쪽 괄호만 지워지더라구요..;;

도와주세요~

by jkson [2020.01.31 13:11:52]

regexp_replace('제주도 노형동 1111 (b-12)aaa아파트 111','\([^)]+\)','')


by ffgg34 [2020.01.31 13:15:46]

와 어찌 동작하는건진 아직 모르겠지만 감사합니다!


by jkson [2020.01.31 14:26:01]

\( ->괄호가 있고

[^)]+ -> 괄호가 아닌 글자가 반복되다가

\) -> 괄호가 있는 패턴을 찾으면

'' 으로 replace


by ffgg34 [2020.01.31 14:42:45]

아 어쩐지.. 적어주신 표현에 범위지정은 없는거같았는데...

계속찾으면서 범위가 선택되는건가요?

그러면 표현식으로 데이터의 전체를 포함하고 싶으면 특수문자로 ^#이렇게 해도 똑같이 되는건가요?


by jkson [2020.01.31 14:46:21]

정규식은 패턴을 가지고 처리하는 것이라 대부분 범위를 지정하지 않으면 전체 범위에서 해당 패턴에 대해 처리하게 됩니다.

데이터의 전체를 포함한다는 게 무슨 말씀이신지 모르겠네요.

정규식을 조금 공부하시면 이해가 쉬우실 것 같습니다.


by ffgg34 [2020.01.31 14:50:10]

아... 제가 정규식을 안지얼마안되서요 ㅎㅎ

헷갈리네요 ㅎㅎ

답변 감사합니다!

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입