crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Заменить \n и определеном блоке html, QString.replace и QRegExp
pussbb
  опции профиля:
сообщение 9.3.2010, 14:06
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 10
Регистрация: 5.12.2009
Пользователь №: 1278

Спасибо сказали: 0 раз(а)




Репутация:   0  


Необходимо заменить все \n блоке <pre class...>....</pre> на <br />.
я так понимаю что надо использовать QString::replace ( const QRegExp & rx, const QString & after ) .
Да вот только одна беда сколько не разбирался всё ровно не пойму я этот QRegExp.
подскажите как это сделать.
Заранее спасибо.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
ViGOur
  опции профиля:
сообщение 9.3.2010, 15:10
Сообщение #2


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Получаем все блоки pre:
QRegExp rx("<pre[^>]*>(.*)</pre>");
rx.setMinimal(true);
QStringList list;
while( ( int pos = rx.indexIn( szData, pos)) != -1)
{
   list << rx.cap(1);
   pos += rx.matchedLength();
}
затем в цикле проходимся по элементам списка list и меняем \n на <br />:
for( int n = 0; n < list.size(); n++)
{
   QString szTmp = list.at( n);
   szTmp.replace( "\n", "<br />");
   szData.replace( list.at( n), szTmp);
}
Примерно так...

Код на работоспособность не проверял, написал от руки, так что не обессудь! :)

Сообщение отредактировал ViGOur - 9.3.2010, 20:52
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 18.2.2025, 17:14