База знаний Одина – Одинэсника › Форумы › 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