Функции СокрЛ, СокрП, СокрЛП удаляют любое количество пробелов в начале или конце строки. Этим можно воспользоваться, чтобы удалить другие начальные или конечные повторяющиеся символы, заменив их на пробел, а затем выполнив обратную замену.
Автор: ildarovich
//Например, чтобы удалить любое количество точек в конце строки, можно воспользоваться выражением:
СтрЗаменить(СокрП(СтрЗаменить(ИсходнаяСтрока, ".", " ")), " ", ".")
//Правда, если исходная строка изначально содержит пробелы, то результат будет неправильным. В этом случае предварительно требуется заменить пробелы каким-либо редким сочетанием символов, а после преобразования выполнить обратную замену.
СтрЗаменить(СтрЗаменить(СокрП(СтрЗаменить(СтрЗаменить(ИсходнаяСтрока, " ", Символы.НПП), ".", " ")), " ", "."), Символы.НПП, " ")
УдалитьПовторяющиесяСимволы (БСП)
СформироватьСтрокуСимволов (БСП)
УдалитьПоследниеСимволыИзСтроки (БСП)
Удалить повторяющиеся элементы массива
ВсеКонтактыПоНачалуНаименования (БСП)
ВсеКонтактыПоНачалуНаименованияСАдресамиЭлектроннойПочты (БСП)
#1, ред. 22 января 2021 11:41
В группах возник вопрос, зачем нужна обратная замена.
Ответ:
Для того, чтобы вернуть обратно на место символы, которые мы заменили на пробелы внутри строки.
Например, если мы хотим удалить символы * в конце строки, но внутри строки тоже есть эти символы:
Исходная строка "ааа*ааа***"
заменяем * на пробелы "ааа ааа "
СокрП() "ааа ааа"
заменяем обратно пробелы на *
Получаем "ааа*ааа"