QRegExp не распознает выражение


У меня есть следующие данные:

(&xxx-&yyyy) &pp_pp+&uuu

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

&xxx
&yyyy
&pp_pp
&uuu

Что я пробовал:

 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/ и там это сработало.


person Stephan    schedule 07.02.2014    source источник


Ответы (1)


Решил это с помощью:

 QStringList list;
 int pos = 0;

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

Справочник

person Stephan    schedule 07.02.2014