"2323 432 1223"のような形式の単純なQStringを分割する必要があります。処理されている最初の行は、例えば文字列のようなものである場合 iが使用するコードは、私が最初のため を取得QT regressionExpressions数値を取得する
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;
}
あるサイクル出力中:
1 = 2323
2 = 2323
3 =
何が問題なのですか?
あなたの主な問題は、1つの一致を1つだけ取得したことです。 *すべての*マッチを取得する必要があります。文字があるかどうかに関わらず、この質問の範囲にはないようです。それ以外は更新してください。 –
あなたの問題を解決した回答がある場合は、受諾/ upvotingを検討してください。そうでない場合は、何が機能していないか、まだ不明な点について説明するコメントを記入してください。 –