c# 转义字符转换

3 篇文章 0 订阅
在我们开发网站过程中很多时刻都需要做过滤特殊字符串,这样我们就得进行特殊字符串进行转义。比如下面这个方法
#region 过滤Json非法字符
        public static string String2Json(string s)
        {
            StringBuilder sb = new StringBuilder("");
            for (int i = 0; i < s.Length; i++)
            {
                char c = s[i];
                switch (c)
                {
                    case '\\':
                        sb.Append("\\\\");
                        break;
                    case '/':
                        sb.Append("\\/");
                        break;
                    case '\b':
                        sb.Append("\\b");
                        break;
                    case '\f':
                        sb.Append("\\f");
                        break;
                    case '\n':
                        sb.Append("\\n");
                        break;
                    case '\r':
                        sb.Append("\\r");
                        break;
                    case '\t':
                        sb.Append("\\t");
                        break;
                    default:
                        sb.Append(c);
                        break;
                }
            }
            return sb.ToString();
        }
        #endregion
看到这么长的代码你是否有想去压缩它的念头?
其实微软已经帮我想到了,而提供了Regex.Escape()方法。
如果您想进行转义可以调用Regex.Unescape() 方法。
注意

Unescape 不能完全反转转义的字符串,因为当字符转义时无法精确推导字符串。

  • 它将不可打印字符的表示形式替换为字符本身。 例如,它使用 \x07 替换 \a。 它替换的字符表示形式为 \a、\b、\e、\n、\r、\f、\t 和 \v。

如果 Unescape 方法遇到不能转换的其他转义序列,如 \w 或 \s,它将引发 ArgumentException

参考:http://msdn.microsoft.com/zh-cn/library/system.text.regularexpressions.regex.unescape.aspx

生活资讯平台


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值