정규식 재질문 1 2 2,055

by XX큰타이거 정규식 [2015.11.03 20:21:52]


안녕하세요...

아래 질문에 마농님의 친절한 답변에 감사 드리며 정규식 하나 재질문 드립니다.

 

특정 필드에 값이 아래와 같이 입력되어 있습니다.

1*((2/30)+2)

위의 값을

첫번째 정수는 100, 두번째 정수는 50, 세번째 정수는 200, 네번째 정수는 40으로 치환하고 싶은데요...

즉, 아래와 같이 출력이 되면 됩니다.

100*((50/200)+40)

특정 값이 특정 숫자로 REPLACE되는 것이 아닌 현재 입력된 필드에서 순차적으로 특정 숫자로 바뀌어야 합니다. (첫번째 2가 50, 두번째 2가 40으로 바뀐것 처럼요....)

다시한번 부탁 드립니다....

그럼 수고하세요....

by 마농 [2015.11.03 20:40:21]
SELECT v
     , v1, v2, v3, v4
     , REGEXP_REPLACE(v
       , '([^0-9]+)?([0-9]+)([^0-9]+)([0-9]+)([^0-9]+)([0-9]+)([^0-9]+)([0-9]+)([^0-9]+)?'
       , '\1' || v1 || '\3' || v2 || '\5' || v3 || '\7' || v4 || '\9'
       ) x
  FROM (SELECT '1*((2/30)+2)' v FROM dual)
     , (SELECT 100 v1, 50 v2, 200 v3, 40 v4 FROM dual)
;

 


by XX큰타이거 [2015.11.03 20:55:51]

아..마농님...

질문을 드리고 잠시 머리를 식히고 나서 첨부터 좀 뜯어보니 해결책을 찾았네요...

 

빠른 답변 감사합니다...

복받으세요~~~~~~~ㅎㅎ

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