2014-02-07 2 views
0


У меня есть следующий входной сигнал:QRegExp не признает выражению:

(& xxx- & гггг) & pp_pp + & их

Я пытаюсь получить все матчи, который начинается с a & и за ним следует любой символ слова.
E.g. выше должна уступить:

& ххх
& гггг
& pp_pp
& ууу

Я попытался это:

QRegExp rx; 
rx.setPattern("(&\\w+)+"); 
rx.indexIn("(&xxx-&yyyy) &pp_pp+&uuu"); 
QStringList variables; 
for(int i = 1; i < rx.captureCount(); i++) 
{ 
     variables.append(rx.cap(i)); 
} 

Я просто не получаю совпадение. Где моя ошибка?
Если у меня есть указанный выше вход rx.captureCount() всегда 1.
Я не думаю, что это мое регулярное выражение, которое неправильно, потому что я проверил его на http://regexpal.com/ и там он работал.

ответ

0

решаемые его с помощью:

QStringList list; 
int pos = 0; 

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

Reference

Смежные вопросы