Есть библиотека для нормализации строк в Java? - PullRequest
1 голос
/ 22 ноября 2011

Да, я знаю, что есть похожий вопрос, но я хочу другую вещь.

Я хочу нормализовать знаки препинания, пробелы, кавычки, дефисы и т. Д., Но не касаться букв.

Существует множество различных символов для двойных кавычек, одинарных кавычек, пробелов и т. Д. Я хочу заменить все возможности символом по умолчанию.

В данный момент я использую регулярное выражение, но собираю все найденные возможности и добавляю в регулярное выражение вручную. Я хочу знать, есть ли библиотека, которая может сделать это, но не меняйте буквы, как замену акцентированной буквы на неакцентированную.

РЕДАКТИРОВАТЬ:

Вот несколько примеров:

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

Многие символы имеют одинаковое представление шрифтов, но в Юникоде это разные символы.

1 Ответ

1 голос
/ 22 ноября 2011

Если вы делаете это по тем же причинам, что и мы (полнотекстовый поиск / индексирование), вы можете взглянуть на функции нормализации текста, которые предоставляет Lucene .Хороший пример: здесь .

В противном случае регулярное выражение с классами Java Pattern и Matcher будет лучшим выбором.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...