C# 替换字符串特殊标记内容
Dictionary<string, string> fieldMappings,Key:特殊标记 Value:替换的内容
{"FieldId15646","字段名"}
例:'字段:{FieldId15646}被替换'-》'字段:【字段名】被替换'
方案一:正则表达式
public static string ReplaceFieldIds(string input, Dictionary<string, string> fieldMappings) { // 使用正则表达式匹配所有{FieldId}格式的占位符 return Regex.Replace(input, @"\{([^{}]+)\}", match => { string fieldId = match.Groups[1].Value; // 提取FieldId if (fieldMappings.TryGetValue(fieldId, out string fieldName)) { return "【" + fieldName + "】"; // 找到映射,替换为字段名称 } else { // 未找到映射,可选择保留原占位符或抛出异常 return "【" + fieldId + "】"; // 示例中保留原样 } }); }
方案二:循环
public static string GetFromContentText(Dictionary<string, string> fieldMappings, string input) { int startIndex = 0; string content = string.Empty; while (true) { int openBraceIndex = input.IndexOf('{', startIndex); if (openBraceIndex == -1) { if (startIndex >= input.Length)//字符串'}'结尾 { break; } else { content += input.Substring(startIndex); break; } } else { content += input.Substring(startIndex, openBraceIndex - startIndex); } int closeBraceIndex = input.IndexOf('}', openBraceIndex); var fieldId = input.Substring(openBraceIndex + 1, closeBraceIndex - openBraceIndex - 1); if (fieldMappings.TryGetValue(fieldId, out string fieldName)) { content += "【" + fieldName + "】"; // 找到映射,替换为字段名称 } else { // 未找到映射,可选择保留原占位符或抛出异常 content += fieldId; // 示例中保留原样 } startIndex = closeBraceIndex + 1; } return content; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了