现有一条配置SQL
select *from testTable a WHERE ((name={#fff}) AND (id= '123455') and (age={#fff}) )
把{#fff} 所在的小括号即(name={#fff}) , (age={#fff}) 替换成 (1=1)
求java正则,能直接用字符串替换
1.java版本
String s = "select *from testTable a WHERE ((name={#fff}) AND (id= '123455') and (age={#fff}) )";
s = s.replaceAll("\\w+=\\{#fff\\}", "1=1");
2.javascript版本
var s = 'select *from testTable a WHERE ((name={#fff}) AND (id= \'123455\') and (age={#fff}) )';
s = s.replace(/\w+={#fff}/g, '1=1');
希望对你有帮助....
直接把整条sql当成一个字符串,直接替换里面的小括号内容,不知道这样的方法符不符合你的问题场景
先拿到所有的括号,判断括号中有{#fff}的时候,把当前这个括号当做整体替换掉直接replaceAll("","")