sql developer 설정관련 정규식함수(REGEXP_LIKE) (백슬래시->\),([] () 차이) 0 3 2,558

by 치즈케이크 [SQL Developer] 디벨로퍼 활용법 SQL Developer 정규식함수REGEXP LIKE [2017.09.24 16:10:25]


1. \ 역슬래시 문제

연습용 계정 = SCOTT

SELECT name, tel

FROM student

WHERE REGEXP_LIKE(tel, '^[0-9]{2}\)[0-9]{4}');

다음과 같은 예시입니다. 보통 CMD 창에 \치면 역슬래시가 나오지 않고 \(원화표시)가 잘 나오는데요... 

그런데 디벨로퍼나 conemu로 \입력시 자동으로 역슬래시로 바뀌어...ㅠㅠ 기능을 사용할 수가 없게 되는 현상이 일어나게 되네요.

ex) 02)885-4564 -> )를 표현하기 위해 \를 쓰려고하는데... 불가능해지네요 ㅠ 디벨로퍼 환경설정에 있을텐데 미숙한 관계로 잘 모르겠네요..

2. 정규식 함수 () [] 차이 

예문해석 ) ID중에서 첫 글자가 M으로 시작하고 두 번째 글자가

a나 o가 오는 id를 이름과 함께 출력!

SELECT name, id

FROM student 

WHERE REGEXP_LIKE(id, '^M(a|o)') ;

또는

SELECT name, id

FROM student 

WHERE REGEXP_LIKE(id, '^M[a|o]') ;

위예시문이 책에 나와있는데 계속 [] 쓰다가 ()를 써서 당황했는데...

둘 비교해보려고 [] 도 이용해봤는데 결과는 같더라고요.. 두 괄호의 쓰임의 차이가 궁금합니다.! 

 

by 우리집아찌 [2017.09.25 09:51:32]

\ 역슬래시 문제 -> 원하시는 규칙을 말씀하세요.


by 마농 [2017.09.25 10:18:52]

1. 역슬래쉬 표시 형태는
  - 표시되는 글꼴이나 언어 환경에 따라 다르게 표시되는 것일 뿐입니다.
  - (원화표시) 나 (역슬래쉬) 나 그 기능이 달라지지는 않습니다.
2. 괄호와 대괄호
  - 괄호는 묶음을 의미하며, 대괄호는 패턴을 표시할 때 사용합니다.
  - | 은 OR 의 의미를 가지는데 대괄호 안에서는 그냥 문자일 뿐 OR 의 의미가 없습니다.
  - 따라서 '^M[a|o]' 은 잘못 된 사용법입니다.
  - a 또는 | 또는 o 의 의미로 쓸데없이 | 에 대한 체크가 포함되어 있네요.
  - 그냥 '^M[ao]' 하는게 맞습니다.


by 치즈케이크 [2017.09.28 15:29:01]

답변 감사합니다 ^^

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