Удаление символов из текста в java

171
11 июня 2018, 17:30

Как удалить символы из текста за исключением русского/английского алфавита, знаков пунктуации и пробельных символов с помощью регулярных выражений? Есть ли готовый класс (в терминах regexp)? Хотелось бы избежать прямого перечисления.

Answer 1

Попробуйте

replaceAll("[[\W[0-9_]]&&[\S]&&[^А-Яа-я-.?!)(,:]]", "");
Answer 2

В regex-паттерне есть предопределенные группы символов:

Predefined character classes

. - Any character (may or may not match line terminators)

\d - A digit: [0-9]

\D - A non-digit: [^0-9]

\s - A whitespace character: [ \t\n\x0B\f\r]

\S - A non-whitespace character: [^\s]

\w - A word character: [a-zA-Z_0-9]

\W - A non-word character: [^\w]

К сожалению, нет готовой группы символов, чтобы убрать из строки всё, кроме букв, цифр и знаков препинания. Поэтому нужно комбинировать.

Например так:

String str = "1 my example str ~ !";
System.out.println("before:" + str);
str = str.replaceAll("[^\\w ,.:\"'!\\t]", "");
System.out.println(" after:" + str);
READ ALSO
Json методы, как получить информацию из deviations

Json методы, как получить информацию из deviations

у меня есть задание, в одной части из которого я должен получить сообщение с сайта о возможной задержке поезда

210
Servlet отправка неоднородных данных

Servlet отправка неоднородных данных

Как отправить и картинки и разметку? Пихаю в OutputStream картинку, выставляю setContentType("imeg/jpeg")Все норм, но таких картинок я хочу отправить не одну!...

186
Android Room сохранение вложенных Entity

Android Room сохранение вложенных Entity

Недавно начал разбираться с android разработкойНикак не могу понять как с помощью Room сохранить в БД вот такой объект:

175
Вложенные циклы for БЕЗ скобок

Вложенные циклы for БЕЗ скобок

В этом случае программа выйдет из обоих циклов или только из внутреннего?

167