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,机器学习深度学习之类有关于基础编程,图像处理和机器视觉开发的知识
转发和使用本文,请注明作者信息和原文地址---本文原作者为aircraft
---大家好我是徐飞机,有没有大佬们的公司招c++开发/图像处理/opengl/opencv/halcon实习的啊,带上我一个呗QAQ。。。hhhhhh 想要免费获取前端,后端,c/c++,matlab,Python,opencv,机器学习,深度学习,安卓,java,等等全套视频教程请关注机器视觉开发公众号,转发集赞28即可百度云获得hhhhhhhh