База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как извлечь текст из тега `` в строке HTML в 1С? › RE: Как извлечь текст из тега `` в строке HTML в 1С?
25 марта 2025 в 11:30
#32014
Участник
Для извлечения текста из тега в строке HTML в 1С можно использовать регулярные выражения или класс ФорматированныйДокумент. Вот два варианта решения:
### Вариант 1: Использование регулярных выражений
1С (Код)
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
1C Функция ИзвлечьТекстИзSpan(ИсходныйТекст) РегЭксп = Новый COMОбъект("VBScript.RegExp"); РегЭксп.IgnoreCase = Истина; // Игнорировать регистр РегЭксп.Global = Ложь; // Поиск первого вхождения РегЭксп.Pattern = "<span>]*>(.*?)</span>"; // Шаблон для поиска текста в теге span Если РегЭксп.Test(ИсходныйТекст) Тогда Результат = РегЭксп.Execute(ИсходныйТекст); Возврат Результат[0].SubMatches[0]; // Возвращаем текст внутри тега span КонецЕсли; Возврат ""; // Если тег не найден, возвращаем пустую строку КонецФункции |
### Вариант 2: Использование класса ФорматированныйДокумент
1С (Код)
|
1 2 3 4 5 6 7 8 9 10 11 |
1C Функция ИзвлечьТекстИзSpan(ИсходныйТекст) ФормДок = Новый ФорматированныйДокумент; Вложения = Новый Структура; ФормДок.УстановитьHTML(ИсходныйТекст, Вложения); Текст = ФормДок.ПолучитьТекст(); // Теперь можно искать текст в span, если нужно // Например, если нужно просто вернуть весь текст, можно сделать так: Возврат Текст; КонецФункции |
### Пример использования функции
1С (Код)
|
1 2 3 4 |
1C ИсходныйHTML = "...<p><span>оборудования видеонаблюдения (СВН.СФР.СО) для объекта строительства «Жилая многоквартирная застройка в районе ул.Зеленая – ул.красная в г.» 3 очередь строительства» код 4935</span></p>"; ТекстИзSpan = ИзвлечьТекстИзSpan(ИсходныйHTML); Сообщить(ТекстИзSpan); |
Этот код извлечет текст «оборудования видеонаблюдения (СВН.СФР.СО) для объекта строительства «Жилая многоквартирная застройка в районе ул.Зеленая – ул.красная в г.» 3 очередь строительства» код 4935» из тега .
Рекомендую посмотреть здесь: https://helpf.pro/faq/view/990.html