码迷,mamicode.com
首页 > 数据库 > 详细

[原]Sql脚本压缩类。

时间:2015-07-07 16:43:57      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:

精简的美丽

/*
 * Sql脚本压缩类。
 * 去掉sql语句中多余的空格,以减少sql脚本的文本长度
 * 
 * Author   : goldli@163.com
 * DateTime : 2015/07/03
 */

using System.Text.RegularExpressions;

namespace Sp.Net.Tools
{
    internal class SqlCompressor
    {
        public static string Compress(string source)
        {
            if (string.IsNullOrEmpty(source)) return "无数据";
            //1.去掉所有注释; 行注释 与 块注释
            source = LineComment(source);
            source = BlockComment(source);
            //2.压缩空格
            source = MultipleSpace(source);
            //3.压缩标点符号
            source = Punctuates(source);
            return source;
        }

        /// <summary>
        /// 去掉行注释
        /// </summary>
        /// <param name="source"></param>
        /// <returns></returns>
        private static string LineComment(string source)
        {
            //去掉 "--" 开头的行
            var x = Regex.Replace(source, "--.*", "", RegexOptions.IgnoreCase | RegexOptions.Multiline);

            return x;
        }

        private static string BlockComment(string source)
        {
            //去掉 "/* */" 的行
            var x = Regex.Replace(source,@"\/\*.*\*\/","",RegexOptions.IgnoreCase | RegexOptions.Singleline | RegexOptions.Multiline);

            return x;
        }

        private static string MultipleSpace(string source)
        {
            var x = Regex.Replace(source,@"\s{2,}"," ",RegexOptions.IgnoreCase | RegexOptions.Multiline);

            return x;
        }

        /// <summary>
        /// 空格在标点符号的两侧
        /// </summary>
        /// <param name="source"></param>
        /// <returns></returns>
        private static string Punctuates(string source)
        {
            var x = Regex.Replace(source,@"\s*([\)\(\,\;\.\:\‘\""\=\+\-\*\/\>\<\!\|\~\^])\s*","$1",RegexOptions.IgnoreCase | RegexOptions.Multiline);

            return x;
        }
    }
}

 

[原]Sql脚本压缩类。

标签:

原文地址:http://www.cnblogs.com/goldli/p/4627257.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!