crossplatform.ru

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

> Карманы в QRegExp
cupersuper
  опции профиля:
сообщение 5.5.2011, 20:04
Сообщение #1


Студент
*

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

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




Репутация:   0  


Здравствуйте,

Есть строка "Привет\r\nМир", нужно приобразовать её в "Привет.\r\nМир"

Пробывал как-то так:
txtString.replace( QRegExp("[а-я](\r\n)[А-Я]").cap(1),".\r\n" );

, может кто подскажет
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Litkevich Yuriy
  опции профиля:
сообщение 9.5.2011, 6:53
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


Цитата(cupersuper @ 9.5.2011, 1:23) *
$, насколько я помню конец всей строки QString, а надо перевод строки и каретки, и опять же сохраняя условие
просто конец строки (в зависимости от платформы - \r\n или \r или \n). Для регулярного выражения вообще "Конец всей строки QString" - неизвестный термин.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
cupersuper
  опции профиля:
сообщение 9.5.2011, 11:01
Сообщение #3


Студент
*

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

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




Репутация:   0  


Цитата(Litkevich Yuriy @ 9.5.2011, 6:53) *
Цитата(cupersuper @ 9.5.2011, 1:23) *
$, насколько я помню конец всей строки QString, а надо перевод строки и каретки, и опять же сохраняя условие
просто конец строки (в зависимости от платформы - \r\n или \r или \n). Для регулярного выражения вообще "Конец всей строки QString" - неизвестный термин.


Ок, спасибо, буду знать, только у меня проблема не с определением конца строки, а именно с использованием .cap в .replace
Нужно условие:
"после строчной буквы - заглавная, без точки между ними"
заменить на
"после строчной буквы - заглавная, с точкой между ними"

а согласно выражению:
[^\.]$

я получу, например в данной строке:

Ехали медведи на велосипеде.
А за ними кот задом наперёд.
А за ним комарики на воздушном шарике.
А за ними раки на хромой собаке.
.
***.
.
Вот оно, глупое счастье, с белыми окнами в сад!.
По пруду лебедем красным плавает тихо закат.


четыре лишних точки (пометил зелёным).

Вобщем без QRegExp::cap() или QRegExp::capturedTexts() необойтись, да и хочется научиться их использовать в связке с QString::replace()

Я себе это представляю так:

txtString.replace( QRegExp("[а-я]($)[А-Я]").cap(1), ".\r\n" );


но не работает(


Собственно первый пример лучше подходил для моей ситуации

txtString.replace( QRegExp("[а-я](\r\n)[А-Я]").cap(1),".\r\n" );

т.к. $, действует только в конце выражения
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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


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




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