crossplatform.ru

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

> QRegExp, хочу разобраться в QRegExp
eldar85
  опции профиля:
сообщение 30.4.2010, 19:23
Сообщение #1


программист
***

Группа: Участник
Сообщений: 283
Регистрация: 2.1.2010
Из: Москва
Пользователь №: 1348

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




Репутация:   0  


есть код:
QString f;
    QRegExp rx(str);


             int pos = 0;

             while ((pos = rx.indexIn(xStr, pos)) != -1)
             {
                 f =rx.cap(1);
                 pos += rx.matchedLength();
             }
    
    qDebug() << f;

он парсит отлично, но если мне к примеру нужно найти несколько совпадений например таких:
go to the home at 10 o'clock
go to the home at 11 o'clock
go to the home at 12 o'clock
go to the home at 13 o'clock
go to the home at 14 o'clock

я ставлю в str такую строку: "go to the home at ([0-9]*)"
он находит первую 10, но мне нужно найти все и 10 и 11 и 12 и 13 и 14))) как возможно это сделать?? посоветуйте плиз))
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
eldar85
  опции профиля:
сообщение 30.4.2010, 21:45
Сообщение #2


программист
***

Группа: Участник
Сообщений: 283
Регистрация: 2.1.2010
Из: Москва
Пользователь №: 1348

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




Репутация:   0  


ага, так а как тогда сделать то??? получается тут идет условие - пока pos не равно -1, но это же просто копирование строки в переменную f, по идее все правильно))
мне нужно вот так:
QString f;
QString c;
QString d;
......

    QRegExp rx(str);


             int pos = 0;

             while ((pos = rx.indexIn(xStr, pos)) != -1)
             {
                 f =rx.cap(1); // тут присваивается f 10
                                    //и я хотел остальным Qstring ам присвоить 11, 12, 13, 14 соответственно..
                 с = rx.cap(2); //может так?? но так я пробывал, ничего там не находиться, а находит тольско это f =rx.cap(1) остальное все пустое
                 pos += rx.matchedLength();
             }
    
    qDebug() << f;

пулучается он первое нашел 10 и поместил в QString f это 10. так вот мне нужно например чтобы я мог так
Qstrind f было равно 10
Qstring с было равно 11
Qstring в было рано 12 и так далее))

Сообщение отредактировал eldar85 - 30.4.2010, 22:10
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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


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




RSS Текстовая версия Сейчас: 24.4.2024, 12:55