0


我有以下输入:

(&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/上检查了它并且它在那里工作。

4

1 回答 1

0

通过使用解决它:

 QStringList list;
 int pos = 0;

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

参考

于 2014-02-07T14:33:54.810 回答