안녕하세요. 오라클 정규식을 활용하여 문자열 치환을 하고 싶은 데 이해가 부족하여 작성이 잘 안 되네요.
ex) +1.234+1 ==> +1.2341
-1.234+1 ==> -1.2341
1.234+1 ==> 1.2341
예를 들어 선두에는 무조건 +, -, null이 올 수 있습니다.
그 다음부터는 숫자와 소수점만 나와야 합니다.
이렇게 패턴을 구성할 수 있는 지 궁금합니다.
현재 regexp_replace로 하고 있는 데 잘 안 되네요.
많은 답변 부탁드립니다. 감사합니다.
추가) 답변 감사드립니다.
제 질문에 몇가지 빠진 패턴이 있습니다.
+1.233A12 ==> +1.23312
+1.2+A ==> +1.2
-1.2+* ==> -1.2
1.2*3A ==> 1.23
즉) 맨 첫번째에는 +, -, NUll만 올 수 있고 그 다음은 숫자와 소수점만 올 수 있습니다.
그 이외에 문자나 특수 문자는 삭제되어야 합니다.
WITH T AS ( SELECT '+1.234+1' AS REG FROM DUAL UNION ALL SELECT '-1.234+1' AS REG FROM DUAL UNION ALL SELECT '1.234+1' AS REG FROM DUAL ) SELECT REG , CASE WHEN SUBSTR(REG,1,1) = '+' OR SUBSTR(REG,1,1) = '-' THEN SUBSTR(REG,1,1)||REGEXP_REPLACE(SUBSTR(REG,2,LENGTH(REG)-1),'[+]','') ELSE REGEXP_REPLACE(REG,'[+]','') END REG_REPLACE FROM T;