Russian Qt Forum
Ноябрь 24, 2024, 18:31 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QRegExp  (Прочитано 2197 раз)
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));
   }
 
 
 
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #1 : Март 14, 2013, 23:40 »

потому что экранированные (двойные) бэкслэши надо использовать
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.079 секунд. Запросов: 23.