Как заменить последовательность заданных в разном порядке спец символов одним пробелом?
У меня есть набор символов, который не должен содержаться в строке. Кроме того, количество подряд идущих произвольных символов неизвестно. Мне необходимо найти в строке каждую подстроку со спецсимволами и заменить ее на пробел.
Вот мой вариант:
string.replace("[\n\r\t\u000B\u000C]*".toRegex(), " ");
Проблема в том, что он подставляет пробел после каждого символа почему-то. Где я ошибаюсь?
Ответы (1 шт):
Символы в квадратных скобках [ ] - это символьный класс. Он подразумевает вхождение в искомую комбинацию любого из перечисленных символов.
[ ]* - количество символов 0 и более;
[ ]+ - количество символов 1 и более;
[ ] - только один символ из перечисленных.
В данном случае приоритетный вариант - [ ]+, иначе при замене будет много пробелов.