zoukankan      html  css  js  c++  java
  • c++用正则表达式判断匹配字符串中的数字数值(包括负数,小数,整数)MFC编辑框判断数值

    原文作者:aircraft

    原文链接:https://www.cnblogs.com/DOMLX/p/12097381.html

      因为今天做那个MFC的编辑框有一些框就是要判断输入的是否是数值,一开始我就直接把编辑框那个NUMBER属性给设置了  然后发现 负数不能输入 我TM的差点脑袋都炸了

    然后就去百度搜索函数直接判断字符串数值包括小数,负数,整数这三个的,发现没有官方函数????

    好吧 然后我就去使用正则表达式来搞这个了  反正从c++11里就添加了正则表达式的支持

    正则头文件是这个:

    #include <regex>

    示例代码:

    #include <regex>
    #include <iostream>
    #include <string>
    //正则匹配数值包括负数 小数 整数
    std::string str{ "-[0-9]+(.[0-9]+)?|[0-9]+(.[0-9]+)?" };
    std::regex re(str);
    bool retMatchStr = false;
    
    int main()
    {
        std::string numberStr = "-8.9#";
        retMatchStr = std::regex_match(numberStr, re);
        if (!retMatchStr)
        {
            std::cout << "请输入正确的数值" << std::endl;
            //MessageBoxA("请输入正确的数值");  MFC下使用 然后可以接一个return跳出
        }
        else
        {
            std::cout << "yes" << std::endl;
        }
        //   retMatchStr == TRUE  就保留这个数值字符串
    
        system("pause");
        return 0;
    }

    regex_match(s,re),判断正则表达式re和s是否完全匹配,能从头匹配到尾叫完全。能匹配返回TRUE,不能就FALSE

    用法已经超级简化了哈  谁看不懂 来跟我说   我头把你锤爆。。。。。。

    若有兴趣交流分享技术,可关注本人公众号,里面会不定期的分享各种编程教程,和共享源码,诸如研究分享关于c/c++,python,前端,后端,opencv,halcon,opengl,机器学习深度学习之类有关于基础编程,图像处理和机器视觉开发的知识

  • 相关阅读:
    2.如何安装vmvare tools
    1.如何安装ubuntu
    14.如何读取配置文件的键值对
    android app调试没问题,但打包签名的apk,运行时出现闪退怎么办?
    如何使用jedis进行发布订阅
    如何使用mybatis对mysql数据库进行操作,batis的增删改查
    如何解释json的字符串
    redis可视化工具redisClient
    如何连接远程redis,并且选择某个库进行操作
    理解RESTful架构
  • 原文地址:https://www.cnblogs.com/DOMLX/p/12097381.html
Copyright © 2011-2022 走看看