假设有一个sql语句:SELECT id, name, (select 1+2 from dual) FROM mytable where id > 5. 我想将SELECT和FROM(都是大写)之间的部分替换成 count(*) 该怎么做啊。用正则表达式怎么做呢? 我想得到的sql语句是 SELECT count(*) FROM mytable where id > 5
最新回答
最初
2025-03-01 06:42:02
String s = "SELECT e.*,d.dname FROM emp e LEFT JOIN dept d ON d.did=e.did WHERE 1=1"; String regex = ".*(FROM.*)$"; String result = s.replaceAll(regex, "SELECT count(*) $1"); System.out.println(result); .表示任意字符,*表示0到任意多个,()中表示一组,前面的任意多个字符替换为SELECT count(*),后面$1表示第一组不变,也就是FROM及其后面任意多个字符维持原有。