[原]Sql脚本压缩类。

系统 1979 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脚本压缩类。


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论