PHP에서 UTF8을 이용해서 초성을 잡으려고 합니다.

center의 이미지

UTF-8 환경에서.

mb_regex_encoding('UTF-8'); 
$body = mb_ereg_replace("([ㄱ-ㅎ*])","",$body); 

이렇게 하면 ㄱ에서 ㅎ까지 n번이상 입력되어있는
즉 ㅋㅋ,ㅎㅎㅎ 뭐 이런 보기 싫은 초성체들 제거(공백으로 치환)가 가능하나,

저 범위(ㄱ~ㅎ) 말고도 ㄲ ㅃ ㄸ 같은것도 제거하고 싶어서, UTF-8을 조사해보니
한글 초성범위가 1100~1159임을 확인,

초성범위인것들을 모두 제거할려고 다음과 같이 해봤는데
정규표현식이 잡히지 않는군요.

mb_regex_encoding('UTF-8'); 
$body = mb_ereg_replace("([\x{1100}-\x{1159}]+)","",$body); 

한글 UTF-8 부분중 초성체(1100~1159)부분을 잡는 정규표현식에 대해서
알려주시면 감사하겠습니다.

markboy의 이미지

그냥 처음처럼 하시면 되지 않나요? 아래처럼 테스트 코드를 짜봤습니다.

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body>

<?php
  $body="호호ㄱAㄴㄷBㄹㄲCㅃㄸ하하";
  mb_regex_encoding('UTF-8');
  print mb_ereg_replace("[ㄱ-ㅎ]+","",$body);
?>
  </body>
</html>

웹브라우저로 확인해보면 "호호ABC하하" 로 잘 나오는데요 :D

byung82의 이미지

유니코드를 조합형으로 만들수 있습니다.

이 문서를 참조하시기 바랍니다.

http://groups.google.com/group/microsoft.public.kr.vc.qna/msg/5c2d58217aaba486?dq=&hl=ko&lr=&ie=UTF-8&oe=UTF-8

그럼

center의 이미지

markboy wrote:
그냥 처음처럼 하시면 되지 않나요? 아래처럼 테스트 코드를 짜봤습니다.

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body>

<?php
  $body="호호ㄱAㄴㄷBㄹㄲCㅃㄸ하하";
  mb_regex_encoding('UTF-8');
  print mb_ereg_replace("[ㄱ-ㅎ]+","",$body);
?>
  </body>
</html>

웹브라우저로 확인해보면 "호호ABC하하" 로 잘 나오는데요 :D

앗...저의 불찰이었군요.-_-..
저는 ㄱ에서 ㅎ인지라 나머지 기타 문자열들(ㄲㅃㄳ 등등..)
은 안될거라 생각했는데 다행이라도 깨끗이 잘 되는군요.
감사합니다.^-^

center의 이미지

byung82 wrote:
유니코드를 조합형으로 만들수 있습니다.

이 문서를 참조하시기 바랍니다.

http://groups.google.com/group/microsoft.public.kr.vc.qna/msg/5c2d58217aaba486?dq=&hl=ko&lr=&ie=UTF-8&oe=UTF-8

그럼

정보감사합니다.C에 관련된 것인지라 연구좀 해봐야겠군요.^^

byung82의 이미지

C 라 해도 php로 포팅하시는데 큰 문제는 없을것입니다.

소스 자체가 워낙 간결하게 되어 있고

거의 일반적인 언어에서 쓸수 있는 방법이 동원되었기 때문에 ^^;

금방 변환 하시것 입니다.

그럼