我試圖解析一個文本文件中包含數字數據。我有很多看起來像C++正則表達式匹配全線
129.3 72.7 121.6 173.6 203.3 120.7 40.5 79.2 94.0 123.2 165.8 178.8 135.5 78.5 66.2
但線的長度變化的線。每行還有一些空格。 我想使用正則表達式來解析線和各號碼放置到數組,我可以再後來操作。
使用
std::getline(is, line);
std::tr1::regex rx("[0-9-\.]+");
std::tr1::cmatch res;
std::tr1::regex_search(line.c_str(), res, rx);
只匹配第一個數字。相反,如果我用線錨如
"^[0-9-\.]+$"
"^[0-9-\.]+"
我沒有得到任何比賽和
"[0-9-\.]+$"
剛剛過去的數量相匹配。所以我可能做錯了什麼。謝謝你的幫助。
res是一個數組,即res [1],res [2],res [3] ...應該有你的匹配。你有沒有檢查過,或者你剛剛獲得資源? – 2012-02-17 23:08:55
regexp實際上並不是這裏最好的解決方案,只需使用運算符>>進入浮點數就容易多了,而且更適合。 – PlasmaHH 2012-02-17 23:19:30
我同意PlasmaHH,但誰知道什麼原因,有人想玩正則表達式... – 2012-02-17 23:22:38