C++版本号处理2 - 从文本字符串中提取版本号信息
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{ std::string get_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 23 24 25 26 #include <regex> #include "verutil.h" #include "strutil.h" #include "inner/logger.h" namespace cutl{ std::string get_version (const std::string &text) { try { std::regex versionRule (R"(\d{1,2}(\.\d{1,2}){0,2}\.\d{1,3})" ) ; std::smatch result; if (regex_search (text, result, versionRule)) { return result.str (); } return "" ; } catch (const std::regex_error &e) { CUTL_ERROR (e.what ()); return "" ; } } }
4. 测试代码 1 2 3 4 5 6 7 8 9 10 11 #include "common.hpp" #include "verutil.h" void TestGetVersion () { PrintSubTitle ("TestGetVersion" ); auto version1 = cutl::get_version ("cmake version 3.28.3" ); std::cout << "version1: " << version1 << std::endl; }
5. 运行结果 1 2 -------------------------------------------TestGetVersion------------------------------------------- version1: 3.28.3
6. 源码地址 更多详细代码,请查看本人写的C++ 通用工具库: common_util , 本项目已开源,代码简洁,且有详细的文档和Demo。