XFEExtension
【DLL】XFE各类拓展是一个C#的DLL库,旨在优化C#代码中常用语句的使用,并提供更简洁的访问方式,同时提供Xunit测试框架,快速搭建服务器/客户端,免费ChatGPTAPI接口,免费通讯服务器,XFE下载器,新增格式等
关注
0
Fork
0
Star
0
namespace XFEExtension.NetCore.XFETransform;
/// <summary>
/// 转义器
/// </summary>
/// <param name="escape">待转义字符</param>
/// <param name="startEscapeSymbol">起始转义用符号</param>
/// <param name="repeatEscapeSymbol">重复转义字符</param>
/// <param name="endEscapeSymbol">结束转义用符号</param>
public class EscapeConverter(string escape, string startEscapeSymbol, string repeatEscapeSymbol, string endEscapeSymbol)
{
/// <summary>
/// 起始转义符号
/// </summary>
public string StartEscapeSymbol { get; set; } = startEscapeSymbol;
/// <summary>
/// 重复转义符号
/// </summary>
public string RepeatEscapeSymbol { get; set; } = repeatEscapeSymbol;
/// <summary>
/// 结束转义符号
/// </summary>
public string EndEscapeSymbol { get; set; } = endEscapeSymbol;
/// <summary>
/// 待转义的符号
/// </summary>
public string Escape { get; set; } = escape;
/// <summary>
/// 转义(生成转义后文本)
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public string Convert(string str)
{
str = ConvertEscapeSymbol(str);
str = str.Replace(Escape, $"{StartEscapeSymbol}{RepeatEscapeSymbol}{EndEscapeSymbol}");
return str;
}
/// <summary>
/// 逆转义(生成原文)
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
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}");
}
namespace XFEExtension.NetCore.XFETransform;
/// <summary>
/// 转义器
/// </summary>
/// <param name="escape">待转义字符</param>
/// <param name="startEscapeSymbol">起始转义用符号</param>
/// <param name="repeatEscapeSymbol">重复转义字符</param>
/// <param name="endEscapeSymbol">结束转义用符号</param>
public class EscapeConverter(string escape, string startEscapeSymbol, string repeatEscapeSymbol, string endEscapeSymbol)
{
/// <summary>
/// 起始转义符号
/// </summary>
public string StartEscapeSymbol { get; set; } = startEscapeSymbol;
/// <summary>
/// 重复转义符号
/// </summary>
public string RepeatEscapeSymbol { get; set; } = repeatEscapeSymbol;
/// <summary>
/// 结束转义符号
/// </summary>
public string EndEscapeSymbol { get; set; } = endEscapeSymbol;
/// <summary>
/// 待转义的符号
/// </summary>
public string Escape { get; set; } = escape;
/// <summary>
/// 转义(生成转义后文本)
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public string Convert(string str)
{
str = ConvertEscapeSymbol(str);
str = str.Replace(Escape, $"{StartEscapeSymbol}{RepeatEscapeSymbol}{EndEscapeSymbol}");
return str;
}
/// <summary>
/// 逆转义(生成原文)
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
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}");
}