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
  опции профиля:
сообщение 2.5.2010, 9:07
Сообщение #2


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

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

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




Репутация:   0  


да вот такой вариант работает как нужно
QRegExp rx("(\\d+)");
QString str = "Offsets: 12 14 99 231 7";
QStringList list;
int pos = 0;

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

но есть одно но, почему то он все выпарсивает в двух экзэмплярах, тоесть я делаю qDebug << list; и он выврдит так
"10","10", "11","11", "12","12", "13","13", "14","14" не подскажете из за чего??

даже не два а три экзэмпляра выдает))
"10","10", "10" ..............................

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

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


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


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




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