Java - удалить все несловесные символы строки для всех языков

1

Мне нужно удалить все знаки препинания из слов в java, я попробовал это

    System.out.println("do.,it".replaceAll("[^\\w]", ""));
    System.out.println("сказочники".replaceAll("[^\\w]", ""));

Но это не будет работать с кириллицей или другими языками. Я уже пытался работать с

\p{Punct}

Но список не является полным, например

„ and »

Не хватает

Теги:
punctuation

3 ответа

0
Лучший ответ

Не уверен, поддерживает ли Java это, но попробуйте:

"сказочники".replaceAll("\P{wd}+", "")

где \P{wd} обозначает любой неглавный символ на любом языке. Это противоположность \p{wd}

  • 0
    Это не сработало на моей платформе Java 1.8. Я успешно использовал "сказочники" .replaceAll ("\ P {LD} +", ""), где LD означает "любая буква или цифра".
1

Попробуйте с этим регулярным выражением.

 text = text.replaceAll("[^a-zA-Z0-9\\s]", "");

Это приведет к удалению всех специальных символов, кроме пробела.

Редактировать:

Поскольку это другой язык.

Предположим, вам нужно удалить - + ^.: , - + ^.: ,

Попробуйте это, text = text.replaceAll("[\\-\\+\\.\\^:,]","");

  • 0
    System.out.println ("do., It" .replaceAll ("(\\ w +) \\ p {Punct} (\\ s | $)", "$ 1 $ 2")); печатает "сделай., это" ... и либо я не думаю, что это работает для кириллицы
  • 0
    Попробуйте второй помощник.
Показать ещё 12 комментариев
0

мое решение кажется

System.out.println("сказ очники»»«„"‚‘›‹".replaceAll("[^\\p{L}]", ""));
  • 0
    Это не дает ответа на вопрос. Чтобы критиковать или запросить разъяснения у автора, оставьте комментарий под своим постом.
  • 0
    почему это не решение? я написал "Мне нужно удалить все знаки препинания из слов в Java"
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню