정규식 뽑아내기? 0 2 1,303

by 열심열심 [2019.04.27 18:23:38]


ABC/ABD/팀1/가나

ABC/ABD/팀2/가나/가나다라/bad

ABC/ABD/팀2/가나/가나다라/bad

BC/가나/3팀

ABC/가나/아이&비

이런식으로 있을때 특수문자가 없을땐 팀1,팀2,팀3이 뽑혀져나오는데 &특수문자로 인해 '아이' 까지만 나올 땐 아이&비 까지 뽑을려면 어떻게 처리 해야 할까요?

/ 패터으로 잡아 2번째 / 에서 3번째 / 까지 문자 뽑아오는것 까지 했는데 특수문자로 인해 패턴을 몾맞추겠네요. 모든문자 해버리면 /를 무시해버리고

정규식이 머리 아프네요.. 

by 마농 [2019.04.29 08:20:42]

글세요? 정규식을 어떻게 사용했길래 & 가 문제가 될까요?
혹시 정규식 문제가 아니라, & 를 변수로 인식해서 그런게 아닐런지요?
http://gurubee.net/lecture/1148

SET DEFINE OFF;

WITH t AS
(
SELECT 'ABC/ABD/팀1/가나' v FROM dual
UNION ALL SELECT 'ABC/ABD/팀2/가나/가나다라/bad' FROM dual
UNION ALL SELECT 'ABC/ABD/팀2/가나/가나다라/bad' FROM dual
UNION ALL SELECT 'BC/가나/3팀' FROM dual
UNION ALL SELECT 'ABC/가나/아이&비' FROM dual
)
SELECT v
     , REGEXP_SUBSTR(v, '[^/]+', 1, 3) x1
     , SUBSTR(v, INSTR(v, '/', 1, 2) + 1, INSTR(v||'/', '/', 1, 3) - INSTR(v, '/', 1, 2) - 1) x2
  FROM t
;

 


by 열심열심 [2019.04.29 09:13:17]

REGEXP_substr(col1, '\\(\w+)',1,2 ) 이렇게 해서 문자가아닌 특수문자가 문제가 됐었는데 

instr이 있었네요 감사합니다. 

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