정규식 문의 0 3 789

by 패대기 [SQL Query] [2020.06.29 13:54:22]


안녕하세요. 정규식 문의 드립니다.

SELECT  REGEXP_SUBSTR(COL, '[^|#|]+',1,1) COL1--AB
       ,REGEXP_SUBSTR(COL, '[^|#|]+',1,2) COL2--CD
       ,REGEXP_SUBSTR(COL, '[^|#|]+',1,3) COL3--''
       ,REGEXP_SUBSTR(COL, '[^|#|]+',1,4) COL4--EF|G
       ,REGEXP_SUBSTR(COL, '[^|#|]+',1,5) COL5--''
FROM (SELECT 'AB|#|CD|#||#|EF|G' COL FROM DUAL)

위 쿼리의 컬럼옆 주석에는 나와야 하는 값입니다.

즉, 패턴 |#| 로 붙인 경우 주석옆의 값처럼 나와야 하는데 잘안됩니다. ㅠㅠ

 

by 유령회원 [2020.06.29 15:11:16]

regexp_substr(replace(col,'|#|','^'),'([^^]*)($|\^)',1,1,'i',1)


by 패대기 [2020.06.29 15:56:25]

답변 감사합니다. 잘됩니다. 그런데 값에 ^있는 경우 안되네요..

|#| 를 쓴 이유가 일반적인 글에 |#| 이렇게 쓰는 경우가 거의 없기 때문이거든요..

구루비검색하니 § 기호가 있던데, 일단 거의 안쓸거라고 생각되서, 해당 기호 사용과 nvl하여 ' ' 사용후 값을 분리할 생각입니다.

정규식 어렵네요..


by 유령회원 [2020.06.29 16:03:38]

^는 꼭 써야하는건 아닙니다. 일반적으로 잘 사용하지 않는 단어로 변경해서 사용하시몀 됩니다.

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