我试图解析一个文本文件中包含数字数据。我有很多看起来像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