下面的字符串(SQL查询)的正则表达式模式是什么?
Select col1,colo2,col3 form tablename where col1='this is a test'
不需要通过不同的等等来订购。
只需简单的选择和where子句。
答案 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