我有一個像這樣的sql語句,我們需要修改它以供我們自己使用:C#正則表達式:匹配以x開頭並以y結尾的字符串,不包括結尾部分並匹配模式的最後一次出現
SELECT distinct [testCountry].[Division] as c0
FROM (....) AS testCountry
WHERE ([testCountry].[Division] <> '' and [testCountry].[Division] is not null)
ORDER BY [testCountry].[Division] asc
(....)部分包含其他sql語句,也可能包含關鍵字SELECT, WHERE, ORDER BY
。 這裏我想刪除末尾的Where子句「WHERE ([testCountry].[Division] <> '' and [testCountry].[Division] is not null)
」
如何爲此構造正則表達式?
我已經試過某事像這樣:
string res = Regex.Replace(originalSql, @"(WHERE[\S\s]*?)(ORDER BY)", "$2");
但它會刪除所有WHERE
在其他地方,然後ORDER BY
。 另外如何更正確地編寫正則表達式?
謝謝!
爲什麼使用'[\ S \ s]'而不是點'''? – juharr
原始的sql語句有換行符,就像你會在sql server management studio中看到的那樣 – strisunshine
你知道有一些設置讓你告訴它是否應該或不應該匹配換行符。 – juharr