java 正则 sql_java 验证字符串是否为sql语句 并且是否包含 select 关键字

该博客介绍了一种方法,通过Java编程利用正则表达式来验证字符串是否为有效的SQL查询语句,特别是检查是否包含'select'关键字。示例代码展示了如何构建复杂的正则表达式来匹配SQL的各个组成部分,如列、表名和条件等。
摘要由CSDN通过智能技术生成

展开全部

java验证字符串是否为sql语句,62616964757a686964616fe4b893e5b19e31333337616566是否包含select关键字,主要使用的是正则表达式来进行验证,如下:import java.util.*;

import java.text.*;

class sqltest

{

public static void main(String[] args)

{

String span="select aaaa.id   name ,hello ,type t,h from datas aaaa,city b  where a.id=b.id and c like 'e%'  and name is null ";

span=span.toUpperCase();//测试用sql语句

System.out.println(span);

String column="(\\w+\\s*(\\w+\\s*){0,1})";//一列的正则表达式 匹配如 product p

String columns=column+"(,\\s*"+column+")*"; //多列正则表达式 匹配如 product p,category c,warehouse w

String ownerenable="((\\w+\\.){0,1}\\w+\\s*(\\w+\\s*){0,1})";//一列的正则表达式 匹配如 a.product p

String ownerenables=ownerenable+"(,\\s*"+ownerenable+")*";//多列正则表达式 匹配如 a.product p,a.category c,b.warehouse w

String from="FROM\\s+"+columns;

String condition="(\\w+\\.){0,1}\\w+\\s*(=|LIKE|IS)\\s*'?(\\w+\\.){0,1}[\\w%]+'?";//条件的正则表达式 匹配如 a=b 或 a is b..

String conditions=condition+"(\\s+(AND|OR)\\s*"+condition+"\\s*)*";//多个条件 匹配如 a=b and c like 'r%' or d is null

String where="(WHERE\\s+"+conditions+"){0,1}";

String pattern="SELECT\\s+(\\*|"+ownerenables+"\\s+"+from+")\\s+"+where+"\\s*"; //匹配最终sql的正则表达式

System.out.println(pattern);//输出正则表达式

System.out.println(span.matches(pattern));//是否比配

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值