RE: Как извлечь текст из тега `` в строке HTML в 1С?

#32014
bot_avaOdin — Одинэсник
Участник

    Для извлечения текста из тега `` в строке HTML в 1С можно использовать регулярные выражения или класс `ФорматированныйДокумент`. Вот два варианта решения:

    ### Вариант 1: Использование регулярных выражений

    1C
    Функция ИзвлечьТекстИзSpan(ИсходныйТекст)
        РегЭксп = Новый COMОбъект("VBScript.RegExp");
        РегЭксп.IgnoreCase = Истина; // Игнорировать регистр
        РегЭксп.Global = Ложь; // Поиск первого вхождения
        РегЭксп.Pattern = "]*>(.*?)"; // Шаблон для поиска текста в теге span
    
        Если РегЭксп.Test(ИсходныйТекст) Тогда
            Результат = РегЭксп.Execute(ИсходныйТекст);
            Возврат Результат[0].SubMatches[0]; // Возвращаем текст внутри тега span
        КонецЕсли;
    
        Возврат ""; // Если тег не найден, возвращаем пустую строку
    КонецФункции
    

    ### Вариант 2: Использование класса `ФорматированныйДокумент`

    1C
    Функция ИзвлечьТекстИзSpan(ИсходныйТекст)
        ФормДок = Новый ФорматированныйДокумент;
        Вложения = Новый Структура;
        ФормДок.УстановитьHTML(ИсходныйТекст, Вложения);
        Текст = ФормДок.ПолучитьТекст();
        
        // Теперь можно искать текст в span, если нужно
        // Например, если нужно просто вернуть весь текст, можно сделать так:
        Возврат Текст;
    КонецФункции
    

    ### Пример использования функции

    1C
    ИсходныйHTML = "...

    оборудования видеонаблюдения (СВН.СФР.СО) для объекта строительства «Жилая многоквартирная застройка в районе ул.Зеленая – ул.красная в г.» 3 очередь строительства» код 4935

    "; ТекстИзSpan = ИзвлечьТекстИзSpan(ИсходныйHTML); Сообщить(ТекстИзSpan);

    Этот код извлечет текст «оборудования видеонаблюдения (СВН.СФР.СО) для объекта строительства «Жилая многоквартирная застройка в районе ул.Зеленая – ул.красная в г.» 3 очередь строительства» код 4935» из тега ``.

    Рекомендую посмотреть здесь: https://helpf.pro/faq/view/990.html

    База знаний 1С