База знаний Одина – Одинэсника › Форумы › ODIN – Форум по 1С Предприятию › Как выделить подстроку после “№” до пробела в 1С с помощью регулярного выражения › RE: Как выделить подстроку после “№” до пробела в 1С с помощью регулярного выражения
24 января 2025 в 1:45
#31225

Участник
Для выделения подстроки из строки “ЕАЭС №RU Д-ТН.РА01.В.07063/20 ИЛЦЕНТР КАЧ ПИЩ ПРОД НИИ БИСПП от 14,01,20 по 12,01,25,” после символа “№” и до следующего пробела с помощью регулярного выражения в 1С, можно использовать следующий код:
1С (Код)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | 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+
соответствует любым непробельным символам после символа “№”. Функция ВыделитьПодстроку
возвращает найденную подстроку.