sql2005 存儲進程分頁示例代碼。本站提示廣大學習愛好者:(sql2005 存儲進程分頁示例代碼)文章只能為提供參考,不一定能成為您想要的結果。以下是sql2005 存儲進程分頁示例代碼正文
一些細節
關於應用傳統NFA引擎的年夜多半說話和對象,如Java、.NET來講,“.”的婚配規模是婚配除換行符“\n”之外的隨意率性一個字符。
然則關於javascript來講有些特別,因為各閱讀器的解析引擎分歧,“.”的婚配規模也有所分歧,關於Trident內核的閱讀器,如IE來講,“.”異樣是婚配除換行符“\n”之外的隨意率性一個字符,然則關於其它內核的閱讀器,如Firefox、Opera、Chrome來講,“.”是婚配除回車符“\r”和換行符“\n”之外的隨意率性一個字符。
關於此細節的一些猜想
# <script type="text/javascript">
# document.write(/./.test("\r") + "<br />");
# document.write(/./.test("\n") + "<br />");
# </script>
# //IE下輸入
# true
# false
# //Firefox、Opera、Chrome下輸入
# false
# false
年夜概測了一下,Trident、Presto和Gecko應當都是采取的傳統NFA引擎,而webkit至多是支撐傳統NFA引擎的,然則又與傳統NFA引擎表示的不太一樣,估量不是做了高等優化的傳統NFA引擎,就是DFA/NFA混雜引擎。
因為Windows下支撐“\r”和“\n”,而UNIX下只支撐“\n”,所以我料想能夠是因為其它閱讀器引擎其實不來自於Windows,所以沒有供給對“\r”的支撐,從而招致在正則中“.”也不婚配“\r”吧。沒做深刻研討,只是一些猜想而已。
罕見運用誤區
留意
在婚配多行時,不要試圖用“[.\n]”來婚配隨意率性字符,這類寫法表現的只是小數點和換行符兩個字符中的一個,可使用“(.|\n)”,但普通不如許用,如許寫可讀性差,效力也低,普通用“[\s\S]”,或許是用“.”加(?s)婚配形式來到達這一後果。
舉例
需求描寫:婚配<td>標簽中的內容
源字符串:<td>This is a test line.
Another line. </td>
婚配成果:<td>This is a test line.
Another line. </td>
正則表達式一:<td>[\s\S]*</td>
正則表達式二:(?s)<td>.*</td>
婚配效力測試
以下為測試用字符串,即上面richTextBox1.Text裡輸出的內容(取自CSDN首頁):
<link href="images/favicon.ico" rel="SHORTCUT ICON" />
<title>CSDN.NET - 中國搶先的IT技巧社區,為IT專業技巧人員供給最周全的信息流傳和辦事平台</title>
<script language='JavaScript' type='text/javascript' src='http://www.csdn.net/ggmm/csdn_ggmm.js'></script> <script type="text/javascript" src="http://counter.csdn.net/a/js/AreaCounter.js%22%3E%3C/script>
<script type="text/javascript">
測試代碼:
# string yourStr = richTextBox1.Text;
# StringBuilder src = new StringBuilder(4096);
# for (int i = 0; i < 10000; i++)
# {
# src.Append(yourStr);
# }
# string strData = src.ToString();
# List<Regex> reg = new List<Regex>();
# reg.Add(new Regex(@"[\s\S]"));
# reg.Add(new Regex(@"[\w\W]"));
# reg.Add(new Regex(@"[\d\D]"));
# reg.Add(new Regex(@"(.|\n)"));
# reg.Add(new Regex(@"(?s)."));
# string test = string.Empty;
# Stopwatch stopW = new Stopwatch();
# foreach (Regex re in reg)
# {
# stopW.Reset();
# stopW.Start();
# test = strData;
# test = re.WordStr(test, "");
# stopW.Stop();
# richTextBox2.Text += "正則表達式:" + re.ToString().PadRight(10) + "履行時光:" + stopW.ElapsedMilliseconds.ToString() + " ms";
# richTextBox2.Text += "\n---------------------------------------\n";
# }
測試成果:
測試分兩組停止,法式履行前內存占用為921M
一組是未應用量詞,每次僅調換一個字符,履行時光以下,占用內存938M
正則表達式:[\s\S] 履行時光:2651 ms
---------------------------------------
正則表達式:[\w\W] 履行時光:2515 ms
---------------------------------------
正則表達式:[\d\D] 履行時光:2187 ms
---------------------------------------
正則表達式:(.|\n) 履行時光:2470 ms
---------------------------------------
正則表達式:(?s). 履行時光:1969 ms
另外一組應用了量詞,一次調換一切字符,履行時光以下,占用內存1128M
測試成果(帶量詞)
正則表達式:[\s\S]+ 履行時光:249 ms
---------------------------------------
正則表達式:[\w\W]+ 履行時光:348 ms
---------------------------------------
正則表達式:[\d\D]+ 履行時光:198 ms
---------------------------------------
正則表達式:(.|\n)+ 履行時光:879 ms
---------------------------------------
正則表達式:(?s).+ 履行時光:113 ms
---------------------------------------
測試成果剖析:
婚配效力最高的是采取了Singleline這類婚配形式的“.”
其次是“[\d\D]”,而“(.|\n)”的婚配效力最低
“[\s\S]”的婚配效力居中,只是習氣上用很多些
注:因為各說話支撐的引擎分歧,即便應用統一種引擎,對正則做的優化也有所分歧,所以以上機能測試結論能夠僅實用於.NET。