Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
|
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. подскажите как это сделать. Заранее спасибо. |
|
|
|
|
kwisp |
9.3.2010, 14:56
Сообщение
#2
|
|
астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23
|
pussbb,
а зачем тебе регулярное выражение? \n - строка <br> - строка пользуй замену QString::replace(const QString& before, const QString& after); П.С. а с QRegExp советую разбираться полезная вещь. Link Сообщение отредактировал kwisp - 9.3.2010, 15:01 |
|
|
|
|
ViGOur |
9.3.2010, 15:10
Сообщение
#3
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40
|
Получаем все блоки pre:
затем в цикле проходимся по элементам списка list и меняем \n на <br />:Примерно так...Код на работоспособность не проверял, написал от руки, так что не обессудь! Сообщение отредактировал ViGOur - 9.3.2010, 20:52 |
|
|
|
|
pussbb |
9.3.2010, 15:23
Сообщение
#4
|
|
Студент ![]() Группа: Новичок Сообщений: 10 Регистрация: 5.12.2009 Пользователь №: 1278 Спасибо сказали: 0 раз(а) Репутация: 0
|
Цитата(kwisp @ 9.3.2010, 15:56) Link а зачем тебе регулярное выражение? а затем что он потом всю html-ку так сделает и довит ненужые отступы например <p>text</p> <p>text</p> будет так <p>text</p><br /> <p>text</p><br /> |
|
|
|
|
kwisp |
9.3.2010, 15:38
Сообщение
#5
|
|
астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23
|
Цитата(pussbb @ 9.3.2010, 15:23) Link а затем что он потом всю html-ку так сделает и довит ненужые отступы это не он а ты та делай так чтоб замена происхоила только внутри тегов. У QString есть куча функций indexOf lastIndexOf и проч. ну или как выше посоветовали. ViGOur, не уверен что в регулярке "()" правильно записано. по идее между тегами может быть всё что угодно я бы использовал "(.+)" еще можно не выбирать те блоки в тегах в которых, нет перевода строки, такое же возможно теоретически. может "(.*\n.*)" ? как то так... Сообщение отредактировал kwisp - 9.3.2010, 15:39 |
|
|
|
|
pussbb |
9.3.2010, 16:05
Сообщение
#6
|
|
Студент ![]() Группа: Новичок Сообщений: 10 Регистрация: 5.12.2009 Пользователь №: 1278 Спасибо сказали: 0 раз(а) Репутация: 0
|
Правильно QRegExp rx("<pre[^>]*>([^<]*)</pre>");
Все работает. Всем спасибо |
|
|
|
|
SABROG |
9.3.2010, 20:41
Сообщение
#7
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34
|
А вариант "\r\n" учитывается?
|
|
|
|
|
ViGOur |
9.3.2010, 20:53
Сообщение
#8
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40
|
Цитата(kwisp @ 9.3.2010, 15:38) Link не уверен что в регулярке "()" правильно записано. Ты прав, поправил. |
|
|
|
![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 26.12.2025, 20:25 |