2 dreamarray DreamArray 于 2017.09.13 13:41 提问

java,正则,把{#fff} 所在的小括号即(name={#fff}) 替换成 (1=1)

现有一条配置SQL
select *from testTable a WHERE ((name={#fff}) AND (id= '123455') and (age={#fff}) )
把{#fff} 所在的小括号即(name={#fff}) , (age={#fff}) 替换成 (1=1)
求java正则,能直接用字符串替换

3个回答

w172087242
w172087242   Ds   Rxr 2017.09.13 14:49
已采纳

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');

希望对你有帮助....

jingjingzbd
jingjingzbd   2017.09.13 14:41

直接把整条sql当成一个字符串,直接替换里面的小括号内容,不知道这样的方法符不符合你的问题场景

zml_moxueli
zml_moxueli 直接replace就ok啊
2 个月之前 回复
cashT
cashT   2017.09.13 14:52

先拿到所有的括号,判断括号中有{#fff}的时候,把当前这个括号当做整体替换掉直接replaceAll("","")

Csdn user default icon
上传中...
上传图片
插入图片