미니옵빠의 code stubs

PHP에서 한글, 한자, 알파벳, 숫자만 추출 본문

Language/PHP

PHP에서 한글, 한자, 알파벳, 숫자만 추출

미니옵빠 2011. 6. 8. 18:14
PHP에서 한글, 한자, 알파벳, 숫자만 추출하는 function 이다.

// 한글 한자, 알파벳, 숫자만 추출
function extractOnlyKoreanHanjaAlnum($str) {
    $pattern = '/([\x{1100}-\x{11FF}\x{3130}-\x{318F}\x{AC00}-\x{D7AF}]+|[\x{2E80}-\x{2EFF}\x{31C0}-\x{31EF}\x{3200}-\x{32FF}\x{3400}-\x{4DBF}\x{4E00}-\x{9FBF}\x{F900}-\x{FAFF}\x{20000}-\x{2A6DF}\x{2F800}-\x{2FA1F}]+|[\ a-zA-Z0-9])+/u';
    preg_match_all($pattern, $str, $match);
    return implode('', $match[0]);
}

잘 보면 알겠지만, 정규식 내에 각 문자의 영역별로 OR 조건을 지정해서 잡아내고 있다.
알파벳, 숫자 부분은 alnum 과 같이 정의된 변수를 써도 된다.