c++ string 识别标志位并解析标志位后面的字符
解析字符串中的固定标志位
正则表达式和iterator的配合应用
#include <string>
#include <map>
#include <regex>
#include <iostream>
/
/替换\\M+后面的字符
// \\M+195B6 替换为 文
std::regex pattern(R"(\\M+[^\\M]*)"); // 匹配 \\M+ 后跟任意非 \\M 的字符(0次或多次)
std::string CalM_Replcace(std::string inPutStr) {
std::string result;
// 正则表达式模式,匹配 \\M+ 和后面的部分作为一个整体
std::sregex_iterator iter(inPutStr.begin(), inPutStr.end(), pattern);
std::sregex_iterator end;
std::string::const_iterator search_start(inPutStr.cbegin());
while (iter != end) {
std::smatch match = *iter;
auto curPos = match.position();
if (curPos > 0)
{
result += inPutStr.substr(0, curPos);
inPutStr = inPutStr.erase(0, curPos); // 从找到的位置开始,删除3个字符
iter = std::sregex_iterator(inPutStr.begin(), inPutStr.end(), pattern);
continue;
}
if (curPos == 0)
{
//删除 \\M+
inPutStr = inPutStr.erase(0, 3); // 从找到的位置开始,删除3个字符
//截取内容
std::string substring = inPutStr.substr(0, 5);
inPutStr = inPutStr.erase(0, 5);
// 添加替换后的部分(即 J)
if (mapChineseSign.find(substring) != mapChineseSign.end())
{
result += mapChineseSign[substring]
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· spring官宣接入deepseek,真的太香了~