Удаление повторяющихся символов в начале или конце текста

FastCode 368 2 8 21

Функции СокрЛ, СокрП, СокрЛП удаляют любое количество пробелов в начале или конце строки. Этим можно воспользоваться, чтобы удалить другие начальные или конечные повторяющиеся символы, заменив их на пробел, а затем выполнив обратную замену.

Автор: ildarovich

//Например, чтобы удалить любое количество точек в конце строки, можно воспользоваться выражением:
СтрЗаменить(СокрП(СтрЗаменить(ИсходнаяСтрока, ".", " ")), " ", ".")

//Правда, если исходная строка изначально содержит пробелы, то результат будет неправильным. В этом случае предварительно требуется заменить пробелы каким-либо редким сочетанием символов, а после преобразования выполнить обратную замену.

СтрЗаменить(СтрЗаменить(СокрП(СтрЗаменить(СтрЗаменить(ИсходнаяСтрока, " ", Символы.НПП), ".", " ")), " ", "."), Символы.НПП, " ")
1

Рекомендации

См. также

УдалитьПовторяющиесяСимволы (БСП)

СформироватьСтрокуСимволов (БСП)

УдалитьПоследниеСимволыИзСтроки (БСП)

ВсеКонтактыПоНачалуНаименования (БСП)

ВсеКонтактыПоНачалуНаименованияСАдресамиЭлектроннойПочты (БСП)

УдалитьПовторяющиесяЭлементыМассива (БСП)

Удалить повторяющиеся элементы массива

Добавить вертикальную черту к началу каждой строчки в тексте

ЗаменитьНедопустимыеСимволыXML (БСП)

Обновлятор-1С: групповое (пакетное) обновление и обслуживание всех баз за один раз

Комментарии

bolsun
#1, ред. 22 января 2021 11:41

В группах возник вопрос, зачем нужна обратная замена.
Ответ:
Для того, чтобы вернуть обратно на место символы, которые мы заменили на пробелы внутри строки.

Например, если мы хотим удалить символы * в конце строки, но внутри строки тоже есть эти символы:
Исходная строка "ааа*ааа***"
заменяем * на пробелы "ааа ааа "
СокрП() "ааа ааа"
заменяем обратно пробелы на *
Получаем "ааа*ааа"


Модератору