我上週寫了一些單元測試,用於生成一些SQL語句的一段代碼。正則表達式以匹配常見的SQL語法?
我試圖找出一個匹配SELECT,INSERT和UPDATE語法的正則表達式,這樣我就可以驗證我的方法是否生成有效的SQL,並且在搜索後和我放棄了各種正則表達式編輯器。
我設法獲得部分匹配,但由於引號中的某個部分可以包含任何字符,因此它可以快速擴展以匹配整個陳述。
任何幫助將不勝感激,我不是很好的正則表達式,但我想了解更多關於他們。
順便說一下,它是C#正則表達式,我後。
澄清
我不想需要對數據庫的訪問,因爲這是一個單元測試的一部分,我不wan't不得不維持一個數據庫來測試我的代碼。這可能比這個項目壽命更長。
同意。除了正則表達式,還需要其他一些方法。沒有辦法匹配select語句的合法語法:http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/statements_10002.htm#SQLRF01702 – 2008-09-26 16:24:19
同意。實際上,你需要一個SQL解析器。以下是一篇文章,介紹如何在通用SQL解析器的幫助下進行供應商特定的脫機SQL語法檢查:http://www.dpriver.com/blog/list-of-demos-illustrate-how-to-use-general -sql-parser/vendor-specific-offline-sql-syntax-check/ – 2012-01-08 12:15:31