Как выделить подстроку после «№» до пробела в 1С с помощью регулярного выражения

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как выделить подстроку после «№» до пробела в 1С с помощью регулярного выражения

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

        Как в 1с с помощью регулярного выражения из строки «ЕАЭС №RU Д-ТН.РА01.В.07063/20 ИЛЦЕНТР КАЧ ПИЩ ПРОД НИИ БИСПП от 14,01,20 по 12,01,25,» выделить подстроку после символа «№» и до следующего пробела

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

          Для выделения подстроки из строки «ЕАЭС №RU Д-ТН.РА01.В.07063/20 ИЛЦЕНТР КАЧ ПИЩ ПРОД НИИ БИСПП от 14,01,20 по 12,01,25,» после символа «№» и до следующего пробела с помощью регулярного выражения в 1С, можно использовать следующий код:

          1C
          Функция ВыделитьПодстроку(ИсходнаяСтрока)
              RegExp = Новый COMОбъект("VBScript.RegExp");
              RegExp.IgnoreCase = Истина; // Игнорировать регистр
              RegExp.Global = Ложь; // Поиск только первого вхождения
              RegExp.Pattern = "№(S+)"; // Шаблон для поиска подстроки после "№" до пробела
          
              Если RegExp.Test(ИсходнаяСтрока) Тогда
                  Результат = RegExp.Execute(ИсходнаяСтрока);
                  Возврат Результат(0).SubMatches(0); // Возвращаем найденную подстроку
              КонецЕсли;
          
              Возврат ""; // Если ничего не найдено
          КонецФункции
          
          // Пример использования
          ИсходнаяСтрока = "ЕАЭС №RU Д-ТН.РА01.В.07063/20 ИЛЦЕНТР КАЧ ПИЩ ПРОД НИИ БИСПП от 14,01,20 по 12,01,25,";
          Результат = ВыделитьПодстроку(ИсходнаяСтрока);
          Сообщить(Результат); // Вывод: RU
          

          В этом коде используется регулярное выражение `№(S+)`, где `S+` соответствует любым непробельным символам после символа «№». Функция `ВыделитьПодстроку` возвращает найденную подстроку.

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