應用正則表達式婚配tsql正文語句。本站提示廣大學習愛好者:(應用正則表達式婚配tsql正文語句)文章只能為提供參考,不一定能成為您想要的結果。以下是應用正則表達式婚配tsql正文語句正文
讓我們來看一些例子:
--獲得表的count信息
select count(*) from T with(nolock)
--獲得特定值的count信息
select count(*) from T with(nolock)
where v = '--value'
--獲得表'T'的count信息
select count(*) from T with(nolock)
SELECT * from T --獲得表T
Where P
我們先來試著給出一個簡略的婚配:
\-\-[^\r\n]*$
你會發明,它連第二條的SQL也婚配到了,這是纰謬的。看起來,我們應當消除"'"外面的, 我們再來改改:
\-\-[^\'\r\n]{0,}$
照樣纰謬,這下固然第二條的SQL沒有婚配,但連第三條的都不婚配了,看起來照樣纰謬。
那究竟怎樣樣能力真正婚配到一切的SQL正文呢?
起首我們來總結一下SQL正文的一些特色:
1. 以--開首
2. 正文的內容,應當不會被包括在一對''以內
3. 正文應當只會在最初,後面可以可選的湧現一些語句
好了,搜集到了這些以後,我們終究的SQL正文的語法也出來了:
\-\-([^\'\r\n]{0,}(\'[^\'\r\n]{0,}\'){0,1}[^\'\r\n]{0,}){0,}$
這一下,四條SQL的正文全婚配到了,正則表達式太壯大了吧。
這個SQL語句有一個小小成績,就是前面不克不及有一個單的單引號存在,不然就會婚配有成績。(由於人們的習氣關於這類分隔符默許是成雙湧現的,這個小成績其實也是可以疏忽的)