IT Show MySQL 정규식(regexp)검사를 통한 한글포함여부 체크
2011. 3. 17. 18:33 일반적으로 비밀번호에 영어/숫자가 아닌 한글이 들어가는 경우는 프로그램에서 Filtering하지 못한 경우가 대부분이다. 이렇게 들어간 데이터를 검색하고자 할때 regexp를 사용해서 검사하면 모두 검색할수 있다. SELECT * FROM MEMBER WHERE USER_PASSWORD REGEXP '[가-힣]'; 추가로 정규표현식을 공부하면 쉽게 알수 있는 거지만 한글로 시작하는 경우엔 '^[가-힣]' 모두가 한글로 구성된 경우만 검색할경우엔 '^[가-힣]+$' 숫자 혹은 문자로만 된 데이터를 찾아야 하는 일이 생겨 기록해봄 REGEXP_LIKE와 REGEXP_REPLACE 함수를 써서 정규식을 활용한 판별을 진행 (REGEXP는 다양한 종류와 옵션이 있지만 다루지 않음) 1. 정규식
2. WHERE절에 쓰는 REGEXP_LIKE을 이용하여 데이터 조회하기
3. SELECT문 컬럼절에 REGEXP_REPLACE를 이용하여 데이터 조회하기
4. 끝
with temp as ( select CLOB2 TXT from TB_TEMP_BLOB ) SELECT DISTINCT TO_CHAR(trim(regexp_substr(STR, '[가-힣]+', 1, level))) FROM (SELECT TXT STR FROM temp) t CONNECT BY trim(regexp_substr(str, '[가-힣]+', 1, level)) IS NOT NULL 안녕하세요. 특정 장문 텍스트 로부터 한글만 추출하려고 하는데요. 사이즈가 큰 텍스트파일도 빠르게 regexp_substr를 loop 돌릴 수 있는 좋은 방법 없을까요? 감사합니다.
@notepad_jj2 츄르사려고 코딩하는 코집사입니다.오라클(Oracle)에서 데이터 베이스 안에 테이블에 있는 한글 데이터를 찾아야 되는 경우가 종종 발생하곤 합니다. 머리로는 이해를 하는데, SQL 쿼리 문을 짜는데 막막한 경우에 아래의 쿼리문을 사용하여 찾을 수 있습니다. 이번 글은 오라클(Oracle) SQL 데이터 안에 한글 데이터 찾는 방법입니다. REGEXP_LIKE(COLUMN 명, '[가-힝]')으로 한글이 있는 데이터 찾기아래의 예제 코드처럼, 테이블에서 어떤 열에 한글 데이터가 있는지 찾고 싶은지 넣어주면 됩니다.
예제 데이터 - A라는 테이블에서, NAME이라는 COLUMN 안에 한글이 있으면 모두 출력해라.
이와 반대로, 영어만 있는 데이터를 찾고 싶으면 위의 코드에서 NOT만 붙여주면 됩니다.
이렇게, 한글 데이터가 있는 것들을 추출할 수 있습니다.
데이터가 한글인지 영문인지 판별하고 싶다면, 정규식을 이용하여 LIKE 문으로 찾으면 된다. 정규식 [가-힣] 은 한글 [가]에서 [힣] 까지 포함된 글자가 있다면 매칭된다. 정규식 [A-Za-z] 도 마찬가지로 대문자 A에서 Z 까지, 소문자 a에서 z 까지 매칭된다. 관심있을 만한 주제
|