/* * 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; } } }
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
