정규식 관련 문의 드립니다. 꼭 좀 답변 부탁드립니다. 0 4 1,219

by idoris [2016.08.05 02:59:51]


정규식 관련 문의 드립니다.

알파벳 중간에 0 or 5 숫자가 포함되어 있는 경우 영문 O or S 로 변경하고자합니다.

정규식을 어떻게 구현해야할까요?

예를들면,

TESR0ALS  => TESROALS

WERASL0  => WERASLO

RWKK5SS => RWKKSSS

5ALSIRS => SALSIRS

답변 꼭 좀 부탁드립니다.

감사합니다.

by 마농 [2016.08.05 08:55:14]

변경하는 예제만 있네요.

변경하면 안되는 예가 있나요?


by idoris [2016.08.05 10:36:51]

숫자 0 or 5만 포함된 값만 변경하는 요건이고

그 외 숫자는 변경하면 안되는 요건입니다.

또, 연속된 숫자가 아닌 건만 변경되어야 하고,

0 or 5 가 한 문자에 2번 이상 들어가는 경우도 변경이 되면 안됩니다.

오직 한번 들어가는 경우만 변경되는 요건입니다.

TESR00ALS  -> TESR00ALS

TESR0AL0S  -> TESR0AL0S

위와 같이 유지되어야 합니다.

부탁드립니다. ㅜ_ㅜ

 

 


by 마농 [2016.08.05 10:47:12]
WITH t AS
(
SELECT 'TESR0ALS' v FROM dual
UNION ALL SELECT 'WERASL0' FROM dual
UNION ALL SELECT 'RWKK5SS' FROM dual
UNION ALL SELECT '5ALSIRS' FROM dual
UNION ALL SELECT 'TESR00ALS' FROM dual
UNION ALL SELECT 'TESR0AL0S' FROM dual
)
SELECT v
     , DECODE(REGEXP_COUNT(v, '0|5'), 1
       , REGEXP_REPLACE(REGEXP_REPLACE(v
       , '(^|[A-Z])0([A-Z]|$)', '\1O\2')
       , '(^|[A-Z])5([A-Z]|$)', '\1S\2')
       , v) AS x
  FROM t
;

 


by idoris [2016.08.05 11:08:07]

정말 감사합니다.!! ^^

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