由于使用C++通过正则表达式提取浮点数的例子较少,这里提供一种在一段文字中提取浮点数的代码,测试效果良好
#include <iostream>
#include <regex>
#include <string>
int main()
{
std::regex reg("-?(([1-9]\\d*\\.\\d*)|(0\\.\\d*[1-9]\\d*))");
std::string str = "这是中文示例abc 1234.2 a 匹配浮点数值XX5678 2.6 5.789 -0.23411 +01.45";
const std::sregex_iterator end;
for (std::sregex_iterator iter(std::cbegin(str), std::cend(str), reg); iter != end;++iter)
std::cout << iter->str() << std::endl;
return 0;
}
匹配的结果如下: