gpt4 book ai didi

Java - sql查询的正则表达式

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:50:36 24 4
gpt4 key购买 nike

我需要在 sql 查询字符串上应用 java 正则表达式 来计算它的计数。我必须得到主要查询的“first select”和“from”之间的内容。这是我的例子:

查询:
select name,(select age from subtable), address from table where name in (select name from subtable1)

结果:
select count(*) from table where name in (select name from subtable1)

我正在使用 replaceFirst("^(.*?)from", "select count(*) from") 但它不起作用,因为属性中有一个 sql 查询。

请问有人可以帮忙吗?

最佳答案

您可以使用此正则表达式 ^(.*?)from(?![^(]*\\)) 解决您的问题:

str = str.replaceFirst("^(.*?)from(?![^(]*\\))", "select count(*) from");

输出

select count(*) from table where name in (select name from subtable1)

想法是匹配 () 括号内的 from


Demo

关于Java - sql查询的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43676249/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com