Russian Qt Forum

Qt => Общие вопросы => Тема начата: alexandros от Март 14, 2013, 22:59



Название: QRegExp
Отправлено: alexandros от Март 14, 2013, 22:59
есть приходящие извне данные в формате
 {key:value,key:value....keyN:value:N}{key:value,key:value....keyN:value:N}.... {key:value,key:value....keyN:value:N}{key:value,key:value....keyN:value:N}

по мере поступления мне нужно разбивать их на пакеты и помещать список,
но вот что то регулярка не срабатывает - пробовал ту же самую для javascript'a все прекрасно сработало, если заменить { и } на * и переделать реглярку на #[^#]*# все корректно срабатывает. Что может быть не так?

Код
C++ (Qt)
//buffer of incoming data
packageBuffer[clientConnection] += rawData;
 
   QString regstr = "(\{[^\{\}]*\})";
   QRegExp regExp = QRegExp(regstr);
   // save packages here
   QStringList *packagesQueue = new QStringList();
 
   while(regExp.indexIn(packageBuffer[clientConnection]) == 0){
       packagesQueue->push_back(regExp.capturedTexts().at(0));
       packageBuffer[clientConnection].remove(regExp.capturedTexts().at(0));
   }
 
 
 


Название: Re: QRegExp
Отправлено: kambala от Март 14, 2013, 23:40
потому что экранированные (двойные) бэкслэши надо использовать