블로그 이미지
ChocoTart

Notice

Recent Post

Recent Comment

Recent Trackback

Archive

calendar

1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
  • total
  • today
  • yesterday

'C#'에 해당되는 글 1건

  1. 2014.11.27 c# char 의 형태 파악 하기 (UnicodeCategory)
2014. 11. 27. 22:21 C#


해당 주제에 관심을 가지게 된건 

금지어 체크를 만들면서 이다.


정말 간단한 욕설 체크는 해당 문장에 욕설이 있으면 체크를 하면 되지만 욕설 사이 사이에

공백이라던지 특수 문자라던지 또는 조합되지 않은 한글 (ex _ 'ㅁ' ) 등이 사이사이에 있을경우 

금지어와의 비교가 애매 하다 


그렇다고 해당 문장에 욕설에 속하는 글자가 포함되어 있다고 무조건 욕설로 처리 할수도 없다.

(ex_ "금일 패치는 15:00 에 해주시기 바랍니다"  이 문장에서 '바다'라는 단어가 욕설이라고 치면 아무 문제 없는 문장 이지만 욕설 처리가 될수있다 ) 


따라서 문장의 의미없는 글자 들을 제거 할 필요가 있다.



1. 공백을 및 숫자 제거



( using 문 필요 : using System.Text.RegularExpressions; )


@"\d" 의 경우 숫자들을 Replace 해준다

@"\s" 의 경우 공백들을 Replace 해준다


이 얼마나 편한가... 넣는 인자값에 대한 설명 및 이외의 더 많은 인자값들의 대한건 

아래 주소에서 참조 하기 바란다 

물론 영어다....


http://msdn.microsoft.com/en-us/library/az24scfc(v=vs.110).aspx


제일 좋은 방법은 테스트 코드를 짜고 인자값을 바꿔 가며 테스트 해보면된다.


2. 특수 문자 및 조합되지 않은 문자를 검출하자.



해당 소스중 'node'는 체크를 할 char 이다 


해당 문자의 형식을 판별하여 어떤 형식에 속하는지를 판단 할수 있다. 대충 보면 해당 카테고리가 어떤걸 의미하는지 알수있다. 


OpenPunctuation 같은 경우 괄호 (, {, [ 등등의 괄호를 여는 문자들을 검출해낸다.


자세한것은 아래 사이트에서 참조하면된다.


http://www.fileformat.info/info/unicode/category/Ps/index.


해당 사이트에 가면 여러개의 카테고리들이 있는대 각각 눌러보면 해당 카테고리에 해당되는 문자들을 볼수있다

하단의 List를 누르면 보일 것이다. ( 'ㅁ' 형태로 된 문자들은 우측의 View 를 누르면 자세히 보일 겄이다) 




조합되지 않은 한글의 경우... 이 정보를 어디서 얻었는지 잊어 먹어 버렸다. 


const int _start_mo = 12592;

const int _end_mo = 12660;


현재는 위의 값을 쓰고있는대 체크할 char를 int 로 컨버팅 한후 정수값이 위의 두 값 사이 일경우 

조합되지 않은 글자 라고 한다 이 값에 대한 근거는 

구글링 해보시길... 


그렇게 오래전에 짠 코드는 아닌대 까먹어버렸다...


쓰고나니 너무 대충 썼나...


나중에 시간나면 글을 수정 해야 할지도 모르겠다


아무튼 여기서 끝! 





posted by ChocoTart