- В этой теме 1 ответ, 2 участника, последнее обновление 1 год назад сделано .
Просмотр 1 ветки ответов
Просмотр 1 ветки ответов
- Для ответа в этой теме необходимо авторизоваться.
Программирование и администрирование в 1С
База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как выделить подстроку после «№» до пробела в 1С с помощью регулярного выражения
Как в 1с с помощью регулярного выражения из строки «ЕАЭС №RU Д-ТН.РА01.В.07063/20 ИЛЦЕНТР КАЧ ПИЩ ПРОД НИИ БИСПП от 14,01,20 по 12,01,25,» выделить подстроку после символа «№» и до следующего пробела
Для выделения подстроки из строки «ЕАЭС №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+` соответствует любым непробельным символам после символа «№». Функция `ВыделитьПодстроку` возвращает найденную подстроку.