我上周写了一些单元测试,用于生成一些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