日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

c++中文字符匹配,但不匹配中文標點的完美解決方案。

作者:CrazyCosin 更新時間: 2022-05-13 編程語言

一、需求

  1. 命名規則:0-9 a-z 不能反斜杠,長度限制(30)
  2. 1. Project命名規則
  3. 1. 可以包含:
  4. 1. 漢字,
  5. 2. 字母(區分大小寫),
  6. 3. "_"(英文下劃線),
  7. 4. “-”(英文破折線),
  8. 5. “.”(英文點);
  9. 7. 數字
  10. 2. 長度:30個字符;

二、實現

#include 
#include 
#include 
#include 
#include 
#include 

std::wstring transformString2Wstring(const std::string &s)
{
    setlocale(LC_CTYPE, "en_US.UTF-8");
    const char *_Source = s.c_str();
    size_t len = strlen(_Source) + 1;
    size_t converted = 0;
    wchar_t *wStr = new wchar_t[len];
    mbstowcs_s(&converted, wStr, len, _Source, _TRUNCATE);
    std::wstring result(wStr);
    delete[] wStr;
    return result;
}

int main() {
     std::wstring pattern{L"^[\u4E00-\u9FA5A-Za-z0-9][\u4E00-\u9FA5A-Za-z0-9_\\-\\.]{1,30}$"};
     std::wregex re(pattern);
     std::string test_str = "你啊23zs.-_s";
     bool ret = std::regex_match(transformString2Wstring(test_str), re);
     if (!ret) {
           std::cout << "not match \n"; 
     }
}

原文鏈接:https://blog.csdn.net/CrazyCosin/article/details/124697691

欄目分類
最近更新