XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFEExtension

【DLL】XFE各类拓展是一个C#的DLL库,旨在优化C#代码中常用语句的使用,并提供更简洁的访问方式,同时提供Xunit测试框架,快速搭建服务器/客户端,免费ChatGPTAPI接口,免费通讯服务器,XFE下载器,新增格式等

公开
关注 0 Fork 0 Star 0
UTF-8
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;
    }
}