채택완료

중국어글자만 제외하고싶습니다 REGEXP_REPLACE 적용어떻게해야할까요?

2020-05-24 (일) 13:20:35 1,889

예를들어 밑에와같이 중국어글자 한글이 섞여있다면

中新网移动版是知名的中文新闻移动版门户차이나 모바일 뉴스

이런식있다고치고

차이나 모바일 뉴스만남기고

중국어글자만 제거하고싶습니다 어떻게해야하나요?

update g5_write_free set wr_subject=REGEXP_REPLACE(wr_subject,'中新网移动版是知名的中文新闻移动版门户차이나 모바일 뉴스', '차이나 모바일 뉴스');

|

답변 1개

채택된 답변
+20 포인트
2020-05-24 (일) 14:34:05

출처: https://taegon.kim/archives/1026

임의의문자열에서 한글과 영문자 알파벳만 추출하는 함수입니다.

문자열이 utf-8로 인코딩되어있다고 가정합니다. 따라서 utf-8을 사용하고 있지 않다면 이 함수를 사용하기 전에 iconv 등을 이용해서 인코딩을 utf-8로 변경해주셔야 합니다.

function onlyHanAlpha($subject) {
    $pattern = '/([\xEA-\xED][\x80-\xBF]{2}|[a-zA-Z])+/';
    preg_match_all($pattern, $subject, $match);
    return implode('', $match[0]);
}

사용예는 다음과 같습니다.

$subject = '한글입니다.옆은 일본어日本最大級일본최대급?!@#!asdf91237  ad한글%#@$하하하^%&({}as23寒한문';
echo $subject;
echo "\n";
echo onlyHanAlpha($subject);

답변을 작성하려면 로그인이 필요합니다.