안녕하세요.
정규식관련 질문입니다.
LINESTRING (1012417.78500000 2004330.15050000, 1012421.61640000 2004325.13210000, 1012434.21990000 2004334.25960000, 1012429.86110000 2004339.73160000, 1012417.78500000 2004330.15050000)
요 문장에서 앞에 LINGSTRING 단어와 ( ) 양쪽 괄호를 제거하려고합니다.
REGEXP_REPLACE를 사용해서요.
[LINESTRING()] 이런식으로 하면 LINESTRING와 첫괄호 사이의 공백이 제거가 안됩니다.
그리고 [LINESTRING ()] 공백을 넣고 이렇게 사용하면
저 숫자들 사이에 공백까지 제거가 되어버리더라구요..
숫자사이의 공백은 제거하지않고 앞에 LINGSTRING과 괄호사이의 공백과 괄호를 제거하려면 어떻게 작성해야할까요?
답변기다리겠습니다.
공백이 몇개이던 모두 제거 될테데요? 아래 테스트 구문 돌려시고 확인 한번 해보세요 select regexp_replace(v, 'LINESTRING( )*|\(|\)') result , length(regexp_replace(v, 'LINESTRING( )*|\(|\)')) len from ( select 'LINESTRING (1012417)' v from dual union all select 'LINESTRING (1012417)' v from dual union all select 'LINESTRING (1012417)' v from dual union all select 'LINESTRING (1012417)' v from dual );
올려주신 코드로 하니까 문제 없네요..
일반텍스트에선 공백 모두 제거되는듯 한데..
제가 공간데이터로 하고있는데 공백 하나 제거가 안되네요..ㅠ
우선 다른방법을 찾긴 했는데
위의 방법에서 추가로 MULTILINESTRING 까지 없앨려면 어찌해야할가요..
정규식 너무 복잡하네요 ㅠㅠ
아 이런방법이 있었군요
감사합니다 제로님^^