【发布时间】:2018-03-02 14:26:30
【问题描述】:
我必须拆分“number number number”形式的简单QStrings,例如“2323 432 1223”。 我使用的代码是
QString line;
QRegularExpression re("(\\d+)");
QRegularExpressionMatch match;
while(!qtextstream.atEnd()){
line = qtextstream.readLine();
match = re.match(line);
std::cout<<"1= "<<match.captured(0).toUtf8().constData()<<std::endl;
std::cout<<"2= "<<match.captured(1).toUtf8().constData()<<std::endl;
std::cout<<"3= "<<match.captured(2).toUtf8().constData()<<std::endl;
}
如果正在处理的第一行就像我得到的示例字符串 对于第一个while循环输出:
1= 2323
2= 2323
3=
怎么了?
【问题讨论】:
-
您的主要问题是您只获得了一个匹配项。您需要获得 all 匹配项。不管有没有字母,这似乎不在这个问题的范围内。否则,请更新它。
-
如果有解决您问题的答案,请考虑接受/支持。如果没有,请提供评论,说明什么不起作用/仍不清楚。
标签: qt qregularexpression