날마다 새롭게 또 날마다 새롭게

[Oracle] 정규 표현식 정리 - regexp_* 본문

프로그래밍/DB

[Oracle] 정규 표현식 정리 - regexp_*

아무유 2013. 7. 31. 15:58

정규표현식(Regular Expression) 

정규표현식은 특정한 규칙을 가진 문자열의 집합을 표현하는 형식 언어이다.

정규표현식을 사용하여 패턴을 포함하는 문자열을 찾거나, 패턴의 위치값을 찾거나, 해당 패턴의 문자열을 다른 문자열로 변환하거나, 입력 받는 데이터에 대한 정합성 체크 등 다양하게 활용할 수 있다.


오라클에서 제공하는 정규표현식 함수

REGEXP_LIKE

REGEXP_INSTR

REGEXP_SUBSTR

REGEXP_REPLACE

REGEXP_COUNT : 특정 문자의 개수를 세는 함수


메타 문자 사용

'^pattern' : Pattern으로 시작하는 line 출력

'pattern$' : Pattern으로 끝나는 line 출력

'p....n' : p로 시작하여 n으로 끝나는 line ( . → 1 character)
'[a-z]*' : 모든 이라는 뜻. 글자수가 0일 수도 있음

'[Pp]attern' : Pattern에 해당하는 한 문자

'[^a-m]attern' : Pattern에 해당하지 않는 한 문자


REGEXP_LIKE

형식

regexp_like(column_name, 'value[match_option]');

예제

ex-1) select * from table_name where regexp_like(column_name, '^[ab]');

→ column_name에서 a 또는 b로 시작하는 레코드를 보여준다.

ex-2) select * from table_name where regexp_like(column_name,'end$';

→ column_name에서 end로 끝나는 레코드를 보여준다.

ex-3) select * from table_name where regexp_like(column_name,'value1|value2';

→ column_name 에서 value1과 value2 를 포함하는 레코드를 보여준다ㅏ.


출처

[1] http://applejara.tistory.com/413

[2] http://blog.naver.com/PostView.nhn?blogId=jaeik714&logNo=140192054230

[3] http://oracler.tistory.com/

[4] http://md82.tistory.com/726


Comments