crossplatform.ru

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

> Выборка по ключевым словам
Гость_Ponter_*
сообщение 3.3.2010, 12:59
Сообщение #1





Гости








    


Всем привет, подскажите, пожалуйста, как в строке, например:
"Введите в поле код <pod>kod_value</pod> для <pod>two_kod</pod> сохранения"
Выдрать отдельно два QStringList ("Введите в поле код ", "для" "сохранения") и ("kod_value" и "two_kod") ?
Пытался сделать через регулярное выражение и split, но не получается...есть идеи какие-нибудь?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
kwisp
  опции профиля:
сообщение 3.3.2010, 16:02
Сообщение #2


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

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




Репутация:   23  


ясно.
я пример привел, относительно первого поста. выже не сказали что <pod> может быть сколько угодно.
вам уже подсказали QRegExp::setMinimal()


Цитата(Гость_Ponter_* @ 3.3.2010, 14:37) *
kwisp, это не подходит, потому что этих <pod> может быть сколько угодно.

подойдёт с небольшим изменением.
описываю регулярку словами, скорее всего в коде ошибусь. всё от начала строки или "</pod>" до "<pod>" затем всё до конца строки либо "</pod>"
QRegExp reg("(^\|(</pod>))(.+)<pod>(.+)((</pod>)\|$)");
while((int pos = reg.indexIn(str,0))!=-1)  {
strL1.append(reg.cap(3));// не уверен на счет 3
strL2.append(reg.cap(4));
}

всё равно в регулярке "ошибся" последнее слово не схавает.
минутку

можно так попробовать
QRexExp reg("(<pod>)\|(</pod>)");
QStringList strL = str.split(reg);

если начало строки не <pod> то нечетные элементы списка это элементы первого списка, четные это элементы второго. :)
|| так
QRexExp reg("</?pod>");
QStringList strL = str.split(reg);


Сообщение отредактировал kwisp - 4.3.2010, 9:27
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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


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




RSS Текстовая версия Сейчас: 23.11.2024, 2:05