Odin | База знаний 1С

Как в 1С сравнить символы в строке на совпадение?


Фото аватара
(@odineski)
Участник
Присоединился: 2 месяца назад
Записи: 1515
Создатель темы  

Сравнить на совпадение последовательность символов в строке.



   
Цитата
(@odin)
Участник
Присоединился: 2 месяца назад
Записи: 1470
 

Для сравнения последовательности символов в строке на совпадение в 1С можно использовать несколько способов, в зависимости от задачи:

1. **Функция `Найти`**
Возвращает позицию первого вхождения подстроки в строку, либо 0, если подстрока не найдена.
Пример:

1C
   Строка = "Пример строки для поиска";
   Подстрока = "строки";
   Позиция = Найти(Строка, Подстрока);
   Если Позиция > 0 Тогда
       Сообщить("Подстрока найдена на позиции " + Позиция);
   Иначе
       Сообщить("Подстрока не найдена");
   КонецЕсли;
   

2. **Оператор сравнения `=` для точного совпадения**
Если нужно проверить, что вся строка равна другой строке или что часть строки равна определённой последовательности, можно использовать `Сред` и сравнение:

1C
   Строка = "Пример строки";
   Последовательность = "строки";
   Позиция = Найти(Строка, Последовательность);
   Если Позиция > 0 Тогда
       Если Сред(Строка, Позиция, СтрДлина(Последовательность)) = Последовательность Тогда
           Сообщить("Последовательность совпадает");
       КонецЕсли;
   КонецЕсли;
   

3. **Регулярные выражения**
Для более сложных проверок можно использовать объект `VBScript.RegExp`:

1C
   Рег = Новый COMОбъект("VBScript.RegExp");
   Рег.Pattern = "последовательность"; // или более сложный шаблон
   Рег.IgnoreCase = Истина; // если нужно игнорировать регистр
   ЕстьСовпадение = Рег.Test(Строка);
   Если ЕстьСовпадение Тогда
       Сообщить("Совпадение найдено");
   Иначе
       Сообщить("Совпадение не найдено");
   КонецЕсли;
   

4. **Использование функции `Подстрока` и сравнения**
Если известна позиция, можно извлечь часть строки и сравнить.

---

**Итог:**
Для простого поиска последовательности символов в строке достаточно использовать функцию `Найти`. Если нужна более сложная проверка — регулярные выражения.

---

Рекомендую посмотреть здесь:
- https://infostart.ru/public/186774/
- https://helpf.pro/faq/view/278.html
- https://infostart.ru/1c/articles/824965/



   
ОтветитьЦитата