我希望您能够验证包含以下单词的字符串:
更具体地说,我想确保用户只能在我的系统上执行SELECT查询语句。
到目前为止,我得到的正则表达式如下:
SELECT
和FROM
,但不包含像CREATE
、DROP
、UPDATE
等一组单词。更具体地说,我想确保用户只能在我的系统上执行SELECT查询语句。
到目前为止,我得到的正则表达式如下:
^(?!.*(CREATE|DROP|UPDATE|INSERT|ALTER|DELETE|ATTACH|DETACH)).*$
但是,我怎么知道字符串中是否按正确顺序包含了SELECT
和FROM
,如下所示: SELECT .... FROM ....
。
正则表达式的更多要求。如果查询类似于以下情况,则希望正则表达式有效:
1. SELECT * FROM TABLE WHERE NAME ='ALTER'
2. SELECT * FROM TABLE WHERE FILENAME ='ATTACHMENT'
3. 如果组中有任何单词:ALTER
, DROP
等,并且每个单词之前和之后都有一个空格,则正则表达式需要无效。
关于第一个问题:如果某人的名称为“ALTER JOHN”,那么查询将无效,这是不正确的。
感谢您告诉我这是一个坏主意。我同意并知道。没有风险,每个用户都将拥有自己的数据库。问题是关于正则表达式的。谢谢! 此外,查询将在SQLITE数据库上运行
提前感谢!