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

Как выделить подстр...
 

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


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

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



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

Для выделения подстроки из строки "ЕАЭС №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+` соответствует любым непробельным символам после символа "№". Функция `ВыделитьПодстроку` возвращает найденную подстроку.



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