You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用正则表达式从SQL语句中提取表名?

从SQL语句中提取带库名的表名

需求说明

需要从给定SQL语句里提取形如库名.表名的合法表名,排除带括号的存储/函数调用(如test2.table4(10))以及无库名且带空格的无效表名(如table 1)。

正则表达式方案

用以下正则可以精准匹配目标表名:

(?:INSERT INTO|FROM|from)\s*(\w+\.\w+)(?!\()

正则拆解

  • (?:INSERT INTO|FROM|from):匹配SQL里的表名前置关键词,不捕获该部分内容
  • \s*:匹配0个或多个空格,兼容*from这种无空格的写法
  • (\w+\.\w+):捕获带库名的表名,\w涵盖字母、数字和下划线,符合常规库表命名规则
  • (?!\():负向预查,确保匹配到的表名后面没有左括号,排除存储过程/函数调用的情况

示例处理结果

按照上述正则处理给定的SQL语句,得到如下结果:

Field1field2
atest.table2
btest1.table3
ctest2.table4

内容的提问来源于stack exchange,提问作者Ram

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 10:41:20