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; }

浙公网安备 33010602011771号