java - 使用正则表达式从查询中获取表名

标签 java regex

我正在寻找一种模式,以便为此类 SQL 查询获取表名;

INSERT INTO table(uuid,type) VALUES (?,?)

这里我要获取“表”

我有一个模式,但只有在没有括号时它才有效 INSERT INTO 表 VALUES (?,?)

[from|into|update]\s+(?:\w+.)(\w+)(\s$|\s+(WHERE))

谢谢

注意:它与 get table name from query 中的模式不同

最佳答案

这绝对不是从 SQL 中提取表名的万无一失的方法。但这里有一个使用正则表达式解决问题的方法,就像你需要的那样。您已经在提供的表达式中指定了 WHERE 部分,但如果您只需要名称,真的有必要吗?

(?is)\b(?:from|into|update)\s+(\w+)

请注意,SQL 语句的格式化方式有很多种,任何人都不太可能想出一个可以按照您需要的方式解析 SQL 的表达式。

Demo

关于java - 使用正则表达式从查询中获取表名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34858192/

相关文章:

用于识别英国邮政编码的 R 正则表达式

java - 从 android 获取日期作为字符串

java - JPA多对多问题

java - 将日志尾部通过管道传输到脚本如何导致生成日志的进程停止生成条目?

php - 根据 class 或 id 获取图像的 src 属性

regex - 为什么这个 Oracle regexp_like 测试为 FALSE?

正则表达式:提取字符串中两个标签之间的子字符串

java - 如何获取包含的 FXML 的 Controller ?

java - Java实时应用的纵向扩展

python - 如何设置网站 url 模式的正则表达式