namespace XFEExtension.NetCore.XFETransform; /// /// 转义器 /// /// 待转义字符 /// 起始转义用符号 /// 重复转义字符 /// 结束转义用符号 public class EscapeConverter(string escape, string startEscapeSymbol, string repeatEscapeSymbol, string endEscapeSymbol) { /// /// 起始转义符号 /// public string StartEscapeSymbol { get; set; } = startEscapeSymbol; /// /// 重复转义符号 /// public string RepeatEscapeSymbol { get; set; } = repeatEscapeSymbol; /// /// 结束转义符号 /// public string EndEscapeSymbol { get; set; } = endEscapeSymbol; /// /// 待转义的符号 /// public string Escape { get; set; } = escape; /// /// 转义(生成转义后文本) /// /// /// public string Convert(string str) { str = ConvertEscapeSymbol(str); str = str.Replace(Escape, $"{StartEscapeSymbol}{RepeatEscapeSymbol}{EndEscapeSymbol}"); return str; } /// /// 逆转义(生成原文) /// /// /// public string Inverse(string str) { str = str.Replace($"{StartEscapeSymbol}{RepeatEscapeSymbol}{EndEscapeSymbol}", Escape); str = InverseEscapeSymbol(str); return str; } private string ConvertEscapeSymbol(string str) => str.Replace($"{StartEscapeSymbol}{RepeatEscapeSymbol}", $"{StartEscapeSymbol}{RepeatEscapeSymbol}{RepeatEscapeSymbol}"); private string InverseEscapeSymbol(string str) => str.Replace($"{StartEscapeSymbol}{RepeatEscapeSymbol}{RepeatEscapeSymbol}", $"{StartEscapeSymbol}{RepeatEscapeSymbol}"); }