2014-05-25 2 views
0

У меня есть большая проблема с заменой некоторых символов на Java. Я хотел бы удалить все символы, которые не являются буквами, цифрами или специальными национальными символами, такими как «ę, ±». Когда я использую функцию replaceAll("\W", " "), также удаляются специальные символы.Национальные символы в java replaceAll

Пример строки: «Jest źle, ale będzie lepiej».

Как это заменить: «шутя ль эль б dzie lepiej»

Как должно быть: «Шутка ZLE эль będzie lepiej»

Извините за мой не очень хорошим английский :)

ответ

0

Вашего Английский язык лучше, чем Java польский. Регулярное выражение Java не говорит по-польски, поэтому он рассматривает только «..» национальные символы »(плюс цифры и подчеркивание - GREP, очевидно, был разработан программистами). Это справедливо, actuslly: «нормальный» характер для одного языка «странный» для другого.

Вы можете суммировать несколько дополнительных символов не-ASCII в пользовательском инвертированного символьного класса:

replace ("[^\wźę ]", " "); 

(вы должны добавить другие акцентированные символы, а также, и, возможно, удалить непольских такие символы как Q и ​​X).

Смежные вопросы