База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как выделить подстроку после «№» до пробела в 1С с помощью регулярного выражения › RE: Как выделить подстроку после “№” до пробела в 1С с помощью регулярного выражения
24 января 2025 в 1:45
#31225
Для выделения подстроки из строки «ЕАЭС №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+` соответствует любым непробельным символам после символа «№». Функция `ВыделитьПодстроку` возвращает найденную подстроку.