Название: QRegExp, текст между тегами Отправлено: 0xFF от Март 29, 2010, 17:45 Немогу понять в чем проблема:
Переменная text типа QString содержит html-страничку, нужно вывести в QTextEdit текст между тегами <b> и </b>, по идее код должен быть таким: Код Но ничего не выводится, хотя такая-же регулярка в программе RegexBuddy выдает правильный результат. Попробывал заменить QRegExp rx("<b>(.*?)</b>") на QRegExp rx("<b>(.*)</b>"), в итоге выводится текст между первым и последним тегами(<b>,</b>) на странице. Что не так? Название: Re: QRegExp, текст между тегами Отправлено: alexman от Март 29, 2010, 18:06 А простой парсинг с помощью QDomDocument не подойдет?
Название: Re: QRegExp, текст между тегами Отправлено: SimpleSunny от Март 29, 2010, 19:01 По умолчанию идет поиск максимальной подстроки.
К тому же что это за конструкция ".*?", может имелось в виду ".+". Код
Название: Re: QRegExp, текст между тегами Отправлено: 0xFF от Март 29, 2010, 19:17 QDomDocument, что-то многие пишут что он не все html принимает в силу того, что не для этого он собственно сделан. Завтра попробую с ним разобраться, но что-то он страшный изнутри)
Цитировать rx.setMinimal(true); Спасибо, работает)Цитировать К тому же что это за конструкция ".*?" В вики это назвали ленивая квантификация) Незнаю, но в RegexBuddy только она и работала.Название: Re: QRegExp, текст между тегами Отправлено: alexman от Март 29, 2010, 20:54 QDomDocument, что-то многие пишут что он не все html принимает в силу того, что не для этого он собственно сделан. Завтра попробую с ним разобраться, но что-то он страшный изнутри) QDomDocument создан для работы с xml, а html - частный случай xml. Можите привести пример, когда QDomDocument не применим для работы с html?Название: Re: QRegExp, текст между тегами Отправлено: SimpleSunny от Март 29, 2010, 21:20 Возможно когда на входе невалидный html? :)
Название: Re: QRegExp, текст между тегами Отправлено: alexman от Март 29, 2010, 21:21 Возможно когда на входе невалидный html? :) Невалидный html - это не html ;) |