2011-11-22 3 views
1

예, 비슷한 질문이 있다는 것을 알고 있지만 다른 것을 원합니다.Java에서 문자열 정규화를위한 라이브러리가 있습니까?

구두점, 공백, 따옴표, 하이픈 등을 표준화하고 글자를 터치하고 싶습니다.

큰 따옴표, 작은 따옴표, 공백 등에 많은 다른 문자가 있습니다. 모든 가능성을 기본 char로 바꾸고 싶습니다.

지금은 정규식을 사용하고 있지만 발견 한 모든 가능성을 모으고 정규식에 수동으로 추가하고 있습니다. 나는 이것을 할 수있는 lib가 있는지 알고 싶지만 악센트 부호가있는 문자를 비 악센트 부호로 바꾸는 것과 같은 문자를 변경하지 마십시오.

EDIT :

text.replaceAll("[–––—]", "-"); 
text.replaceAll("[\\u0000-\\u0009\\u000B-\\u001F\\u0080-\\u009F]", ""); 
replacedText = text.replaceAll("[“”“”““”“”“”“”“”]", "\""); 
text.replaceAll("[\\u00A0\\u2000-\\u200B\\u205F\t]+", " "); 

많은 문자가 동일한 폰트의 표현을하지만, 유니 다른 문자이다 :

은 몇 가지 예이다.

+0

내가 한 번도 들어 본 적이 없지만, 당신이하고있는 일은 꽤 합리적이며 어떤 라이브러리도 거의 똑같을 것입니다. – Strelok

답변

1

우리가 (전체 텍스트 검색/색인 생성)과 같은 이유로 이것을 수행하는 경우 Lucene이 제공하는 텍스트 정규화 기능을 살펴볼 수 있습니다. 좋은 예가 here입니다.

그렇지 않으면 자바의 PatternMatcher 클래스를 사용하는 정규 표현식이 최선의 방법입니다.

+0

구두점을 교체해야합니다. 나는 Lucene을 보았지만 이것을 할 수있는 것을 찾지 못했습니다. –