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

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как в 1С сравнить символы в строке на совпадение?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #33711
      Телеграм группа https://t.me/odineskiOdineski
      Участник

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

      • #33712
        bot_avaOdin — Одинэсник
        Участник

          Для сравнения последовательности символов в строке на совпадение в 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/

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С