字符串中获取浮点数 正则表达式

匹配正负整数和正负小数的正则表达式:

regex regex_pattern("-?(([1-9]\\d*\\.\\d*)|(0\\.\\d*[1-9]\\d*)|([1-9]\\d*))");

使用正则表达式迭代器,每次只能获取其中一个数据,所以需要多次迭代获取数据,本例中只提取其中两个数据,所以用两个变量就可以接收到两个数据。

#include <regex> //正则表达式头文件
#include <iostream>
#include <string>
using namespace std;

int main()
{
    int i_count = 0;
    float f_first,f_second;
    string s_line = "asddw-0.6sdsdfd8dfdf";
    regex regex_pattern("-?(([1-9]\\d*\\.\\d*)|(0\\.\\d*[1-9]\\d*)|([1-9]\\d*))"); //匹配正负整数和正负小数的正则表达式
    for (sregex_iterator iter(s_line.begin(), s_line.end(), regex_pattern); iter != iter_end; ++iter)
     {
           if (i_count == 0)
            {
                 f_first = atof(iter->str().c_str());
                 i_count++;
            }
            else if (i_count == 1)
            {
                 f_second = atof(iter->str().c_str());
            }
      }
}

若有误,欢迎指正!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值