Мне нужно убирать из строки ненужные символы методом replaceAll(String regex, String replacement).
Например строка "Hel.l$o wo..rl#d"
Метасимвол \\W убирает все кроме цифровых и буквенных символов. Но мне нужно оставлять в строке еще и пробелы. Как записать выражение?
Используйте
String result = s.replaceAll("[^\\w\\s]+", "");
См. демо регулярного выражения
Здесь [^\\w\\s] — это исключающий символьный класс, который находит 1 и более (благодаря квантификатору +) совпадений символов, отличных от цифр/букв/знака _ и пробельных символов.
Другой способ — исключение пробельных символов из \W с помощью "вычитания символьных классов":
String result = s.replaceAll("[\\W&&[^\\s]]+", "");
Тут шаблон находит все совпадения 1 и более символов, которые находит \W кроме пробельных символов.
См. Java-демо.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей