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,机器学习深度学习之类有关于基础编程,图像处理和机器视觉开发的知识

posted @   aircraft  阅读(5115)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下
点击右上角即可分享
微信分享提示