使用正则表达式验证简单选择查询

时间:2011-06-24 20:25:34

标签: regex

下面的字符串(SQL查询)的正则表达式模式是什么?

Select col1,colo2,col3 form tablename where col1='this is a test'

不需要通过不同的等等来订购。
只需简单的选择和where子句。

2 个答案:

答案 0 :(得分:4)

这支持逗号周围的灵活间距等。原始正则表达式应如下所示:

^Select\s+(?:\w+\s*(?:(?=from\b)|,\s*))+from\s+\w+\s+where\s+\w+\s*=\s*'[^']*'$

您需要转义任何特定于平台的字符(例如,在C#中,\s需要为\\s。)在C#中,它看起来像这样:@"^Select\s+(?:\w+\s*(?:(?=from\b)|,\s*))+from\s+\w+\s+where\s+\w+\s*=\s*'[^']*'$"

另外,不要忘记让你的表达式忽略大小写。在javascript中,它可能以/i结尾:/select ...+/i

答案 1 :(得分:1)

这取决于您要用于检查的正则表达式风格或工具。但是这样的事情可能有用:

/select ([a-z0-9_]+,?)+ from [a-z0-9_]+ where [a-z1-9_]+='[a-z0-9_ ]+'/ 

HTH