Название: Как с помощью регулярных выражений удалить тег с атрибутами? Отправлено: billy4685 от Июнь 02, 2016, 00:02 Доброй ночи, форумчанам. Я работаю с файлами html-справки, которые создавались ранее другими людьми в Microsoft Word-е, в результате чего в разметке страницы появилось множество тегов <span> типа: <span аргументы="">Текст</span>. Мне необходимо достать сам текст. Решил просто используя регулярное выражение просто удалить тег <span>. Но пока не знаю как правильно записать регулярное выражение, чтобы удалился открывающий тег с внутренними аргументами и закрывающий тег, а текст остался. Пробовал следующим образом:
Код: QString str = "<span ang=RU style='mso-ansi-language:RU'>Текст</span>"; Решил тогда загонять текст в QTextDocument и пользуясь методом toPlainText() убирать теги, но в случаи с тегом <span> текст тоже удаляется. >:( Может кто уже решал подобную задачу? Название: Re: Как с помощью регулярных выражений удалить тег с атрибутами? Отправлено: gil9red от Июнь 02, 2016, 01:18 Замену / replace делать? Т.е. ищем '<span.*>(.+)</span>' и все выражение заменяем на то, что находится в круглых скобках.
Я эту идею, когда сейчас придумал проверил на питоне и это работает: Код
Название: Re: Как с помощью регулярных выражений удалить тег с атрибутами? Отправлено: billy4685 от Июнь 02, 2016, 08:10 Код
Вот только import никогда не использовал в qt, его не видет, может нужно какую-нибудь библиотеку подключать. В справке находит только тот import, что в QML. Название: Re: Как с помощью регулярных выражений удалить тег с атрибутами? Отправлено: Igors от Июнь 02, 2016, 08:16 А если будет вложенный тег span ?
Название: Re: Как с помощью регулярных выражений удалить тег с атрибутами? Отправлено: gil9red от Июнь 02, 2016, 09:10 Цитировать Я эту идею, когда сейчас придумал проверил на питоне и это работает: Код
Вот только import никогда не использовал в qt, его не видет, может нужно какую-нибудь библиотеку подключать. В справке находит только тот import, что в QML. Используйте регулярку и алгоритм Название: Re: Как с помощью регулярных выражений удалить тег с атрибутами? Отправлено: billy4685 от Июнь 02, 2016, 10:11 gil9red, спасибо за ответ. Сделал следующим образом:
Код: QString temp; Название: Re: Как с помощью регулярных выражений удалить тег с атрибутами? Отправлено: Bepec от Июнь 02, 2016, 10:54 Парсинг и разбор html'я надо делать для вложенных тегов. По другому не получится :)
|