C++版本号处理1 - 判断一个字符串是否为版本号
1. 关键词 关键词:
C++ 版本号处理 版本号判断 跨平台
实现原理:
使用正则表达式进行版本号匹配。
应用场景:
判定一个字符串是否是指定的版本号格式
2. verutil.h 1 2 3 4 5 6 7 8 9 10 11 12 13 14 #pragma once #include <string> namespace cutl{ bool is_version (const std::string &text) ; }
3. verutil.cpp 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 #include <regex> #include "verutil.h" #include "strutil.h" #include "inner/logger.h" namespace cutl{ bool is_version (const std::string &text) { try { std::regex versionRule (R"(^\d{1,2}([.]\d{1,2}){0,2}[.]\d{1,3}$)" ) ; return regex_match (text, versionRule); } catch (const std::exception &e) { CUTL_ERROR (e.what ()); return false ; } } }
4. 测试代码 1 2 3 4 5 6 7 8 9 10 11 12 13 #include "common.hpp" #include "verutil.h" void TestIsVersion () { PrintSubTitle ("TestIsVersion" ); auto version1 = "3.28.3" ; std::cout << version2 << " is version: " << cutl::is_version (version1) << std::endl; auto version2 = "v3.2.2" ; std::cout << version3 << " is version: " << cutl::is_version (version2) << std::endl; }
5. 运行结果 1 2 3 -------------------------------------------TestIsVersion-------------------------------------------- 3.28.3 is version: 1 v3.2.2 is version: 0
6. 源码地址 更多详细代码,请查看本人写的C++ 通用工具库: common_util , 本项目已开源,代码简洁,且有详细的文档和Demo。