如果不带别名的话,可以就正则实现.

不过java的正则有些限制,所以对于from中多于10张表的就有问题了,不多可以自己在添加,考虑不是很完善

Stringstr="INSERTINTOA\n"+"SELECTB.B1,B.B2,C.C1,C.C2\n"+"FROMBINNERJOINCONB.B0=C.C0\n"+"WHEREB.B0IN(SELECTD0FROMD,E,G,HWHERED.D1=E.E1)\n";Patternp=Pattern.compile("(?i)(?<=(?:from|into|update|join)\\s{1,1000}"+"(?:\\w{1,1000}(?:\\s{0,1000},\\s{0,1000})?)?"//重复这里,可以多个from后面的表+"(?:\\w{1,1000}(?:\\s{0,1000},\\s{0,1000})?)?"+"(?:\\w{1,1000}(?:\\s{0,1000},\\s{0,1000})?)?"+"(?:\\w{1,1000}(?:\\s{0,1000},\\s{0,1000})?)?"+"(?:\\w{1,1000}(?:\\s{0,1000},\\s{0,1000})?)?"+"(?:\\w{1,1000}(?:\\s{0,1000},\\s{0,1000})?)?"+"(?:\\w{1,1000}(?:\\s{0,1000},\\s{0,1000})?)?"+"(?:\\w{1,1000}(?:\\s{0,1000},\\s{0,1000})?)?"+"(?:\\w{1,1000}(?:\\s{0,1000},\\s{0,1000})?)?"+"(?:\\w{1,1000}(?:\\s{0,1000},\\s{0,1000})?)?"+")(\\w+)");Matcherm=p.matcher(str);Listtables=newArrayList();while(m.find()){tables.add(m.group());}System.out.println(tables);

不过像楼上说的,最好还是自己写个sql解析器,可以采用javacc或者antlr来写,会容易些

java正则获取sql表名_如何提取SQL语句中的表名相关推荐

  1. java得到sql语句表名_使用fdb-sql-parser替换SQL语句中的表名

    导语 因为项目中要做跨数据源的数据分析功能,所以使用Presto这个开源框架.但是使用Presto的时候需要指定当前表所在的数据库类型和数据库名,所以需要对SQL语句中的表名进行捕获和替换. 一.探索 ...

  2. groovy怎样从sql语句中截取表名_Mysql和SQL

    基本概念 1.数据库DataBase简称:DB 2.什么数据库?--用于存储和管理数据的仓库.存储过程是一个预编译的SQL语句,优点是允许模块化的设计,就是说只需创建一次,以后在该程序中就可以调用多次 ...

  3. python解析sql语句表名_python正则表达式匹配sql语句中的表名

    [ string text = "select * from [admin] where aa=1 and cc='b' order by aa desc "; Regex reg ...

  4. mysql 表名 参数化_我可以在准备好的语句中参数化表名吗?

    我可以在准备好的语句中参数化表名吗? 我多次使用mysqli_stmt_bind_param函数.但是,如果我将试图防止SQL注入的变量分开,则会遇到错误. 下面是一些代码示例:function in ...

  5. MySQL中修改表结构的关键字_下列SQL语句中,修改表结构的关键字是

    [单选题]对<将进酒>全诗分析不正确的是 [单选题]下列划线词语的解释有误的一项是 [多选题]下列食品属于不完全蛋白质的是 ( ) . [单选题]下列聚合函数中属性列必须是数值型的是 [单 ...

  6. oracle修改表结构的sql命令是什么,sql语句中修改表结构的命令是什么?

    sql语句中修改表结构的命令是:"ALTER TABLE"命令. ALTER TABLE 语句用于在已有的表中添加.删除或修改列. SQL ALTER TABLE 语法 如需在表中 ...

  7. MySQL删除s表命令_SQLServer数据库sql语句中----删除表数据drop、truncate和delete的用法...

    本文主要向大家介绍了SQLServer数据库sql语句中----删除表数据drop.truncate和delete的用法,通过具体的内容向大家展现,希望对大家学习SQLServer数据库有所帮助. 虽 ...

  8. mysql语言中修改表结构的命令_sql语句中修改表结构的命令是什么

    SQL 语句中修改表结构的命令是ALTER TABLE. ALTER TABLE 语句 ALTER TABLE 语句用于在已有的表中添加.删除或修改列. SQL ALTER TABLE 语法 如需在表 ...

  9. 提取.c文件中的函数名

    shell脚本提取.c生成函数原型 写了个脚本主要是为了给自己用的,顺带共享下.作用是提取.c文件中的函数名,生成函数原型. #!/bin/bash sourcesfile=$1 if [[ -f $ ...

最新文章

  1. tcpdump一些选项的使用
  2. jdk中提供的Collection、Collections、Collector、Collectors你分的清楚?
  3. maven default aliyun_大家看看大佬对Maven仓库的讲解,有何高明之处?
  4. C#中全角转半角以及半角转全角
  5. Solr学习笔记001---solr在windows下的安装及配置
  6. 每周一刷——从斐波那契数列到动态规划
  7. dijkstra算法学习笔记
  8. 用python做数学题_「文山玩Python做测试」用python做算术题,很简单
  9. MAX262程控滤波器
  10. LRc2022 M1原生支持功能介绍,Lightroom Classic 2022 Mac M1专用 ,解决lr闪退打不开卡死等一系列问题
  11. python常用模块介绍
  12. 在线txt转epub如何转换
  13. win7计算机无法识别分辨率,window7分辨率显示不正常
  14. mac 清理 -OmniDiskSweeper
  15. java动态代理三座大山InvocationHandler、newProxyInstance()和invoke()
  16. 微信公众号标题怎么写更吸引人?
  17. 开放性金融中的超流动性抵押链
  18. Excel在统计分析中的应用—第五章—统计指数-Part5- 综合指数(费雪指数)
  19. CopyOnWriteArraySet
  20. 面向边缘计算的视频监控系统架构方案

热门文章

  1. 天纵智能软件快速开发年度变化曲线分析插件
  2. Python(三)——如何运行Python程序
  3. Python 制作微信全家福
  4. 上海腾科教育达梦数据库课程干货分享巧用LISTAGG函数行转列
  5. 一张图教你PID#司空徵产品#
  6. linux 调整 内核空间占用cpu,[Linux性能优化]3.CPU使用率100%,怎么办?
  7. 【云原生之Docker实战】使用docker部署家庭DOS游戏服务器
  8. TensorFlow中国研发负责人李双峰演讲实录:TensorFlow从研究到实践
  9. MySQL 字符串截取函数
  10. Springboot2 D1-基础篇、利用boot完成SSM整合(内含Mp的一些知识)