XFEExtension
【DLL】XFE各类拓展是一个C#的DLL库,旨在优化C#代码中常用语句的使用,并提供更简洁的访问方式,同时提供Xunit测试框架,快速搭建服务器/客户端,免费ChatGPTAPI接口,免费通讯服务器,XFE下载器,新增格式等
关注
0
Fork
0
Star
0
namespace XFEExtension.NetCore.XFETransform;
/// <summary>
/// 转义器
/// </summary>
public class MultiEscapeConverter
{
/// <summary>
/// 转义用符号
/// </summary>
public string EscapeSymbol { get; set; } = "/";
/// <summary>
/// 待转义的符号
/// </summary>
public string[] Escapes { get; set; }
/// <summary>
/// 转义(生成转义后文本)
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public string Convert(string str) => Escapes.Aggregate(ConvertEscapeSymbol(str), (current, escape) => current.Replace(escape, $"{EscapeSymbol}{escape}"));
/// <summary>
/// 逆转义(生成原文)
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public string Inverse(string str)
{
str = Escapes.Aggregate(str, (current, escape) => current.Replace($"{EscapeSymbol}{escape}", escape));
str = InverseEscapeSymbol(str);
return str;
}
private string ConvertEscapeSymbol(string str) => str.Replace(EscapeSymbol, $"{EscapeSymbol}{EscapeSymbol}");
private string InverseEscapeSymbol(string str) => str.Replace($"{EscapeSymbol}{EscapeSymbol}", EscapeSymbol);
/// <summary>
/// 转义器
/// </summary>
/// <param name="escapes">待转义字符</param>
public MultiEscapeConverter(string[] escapes)
{
Escapes = escapes;
}
/// <summary>
/// 转义器
/// </summary>
/// <param name="escapeSymbol">转义用符号</param>
/// <param name="escapes">待转义字符</param>
public MultiEscapeConverter(string escapeSymbol, params string[] escapes)
{
EscapeSymbol = escapeSymbol;
Escapes = escapes;
}
}
namespace XFEExtension.NetCore.XFETransform;
/// <summary>
/// 转义器
/// </summary>
public class MultiEscapeConverter
{
/// <summary>
/// 转义用符号
/// </summary>
public string EscapeSymbol { get; set; } = "/";
/// <summary>
/// 待转义的符号
/// </summary>
public string[] Escapes { get; set; }
/// <summary>
/// 转义(生成转义后文本)
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public string Convert(string str) => Escapes.Aggregate(ConvertEscapeSymbol(str), (current, escape) => current.Replace(escape, $"{EscapeSymbol}{escape}"));
/// <summary>
/// 逆转义(生成原文)
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public string Inverse(string str)
{
str = Escapes.Aggregate(str, (current, escape) => current.Replace($"{EscapeSymbol}{escape}", escape));
str = InverseEscapeSymbol(str);
return str;
}
private string ConvertEscapeSymbol(string str) => str.Replace(EscapeSymbol, $"{EscapeSymbol}{EscapeSymbol}");
private string InverseEscapeSymbol(string str) => str.Replace($"{EscapeSymbol}{EscapeSymbol}", EscapeSymbol);
/// <summary>
/// 转义器
/// </summary>
/// <param name="escapes">待转义字符</param>
public MultiEscapeConverter(string[] escapes)
{
Escapes = escapes;
}
/// <summary>
/// 转义器
/// </summary>
/// <param name="escapeSymbol">转义用符号</param>
/// <param name="escapes">待转义字符</param>
public MultiEscapeConverter(string escapeSymbol, params string[] escapes)
{
EscapeSymbol = escapeSymbol;
Escapes = escapes;
}
}