我正在寻找一个正则表达式来查找字符串中的数字;如果我有一个像这样的字符串:
li 12.12 si 43,23 45 31 uf 889 uf31 3.12345
我只想找到数字:
12.12 45 31 889 3.12345
我尝试了以下模式:
((\\+|-)?[[:digit:]]+)(\\.(([[:digit:]]+)?))?
但输出包括uf31和43,23。
我试过:
(?!([a-z]*((\\+|-)?[[:digit:]]+)(\\.(([[:digit:]]+)?))?[a-z]*))?((\\+|-)?[[:digit:]]+)(\\.(([[:digit:]]+)?))?
但这给出了相同的结果。
解决办法是什么?
解决方案留给后代解决方案:
如果您正在寻找使用 RegEx 的解决方案,请参阅来自 stribizhev 的精彩正则表达式
R"((?:^|\s)([+-]?[[:digit:]]+(?:\.[[:digit:]]+)?)(?=$|\s))"
我创建了一个包含两个类型字段的结构Point3f(从另一个标头继承).
struct C_Cell {
Point3f min, max;
};
Run Code Online (Sandbox Code Playgroud)
然后我创建了一个矢量 C_Cell
std::vector< C_Cell> grid;
我已经通过填充grid.push_back(c)其中c一个C_Cell.
现在,当我尝试迭代矢量时,通过
for (std::vector<C_Cell>::iterator it = grid.begin() ; it != grid.end(); ++it)
在调试期间,它的类型不是,C_Cell但是Point3f,这是字段的类型,而且是空的.
如何正确迭代,以这种方式获得单个元素类型C_Cell?
谢谢(抱歉我的英文!:))