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,機器學習深度學習之類有關於基礎編程,圖像處理和機器視覺開發的知識


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM