正则表达式的替换问题

itfly 2006-02-13 09:55:04
String sql="select * from a where bmbm=:a_bmbm"

然后有一个变量B,一个变量C,B是需要匹配"a_bmbm"字符串的,C则是在B匹配以后需要替换SQL中:a_bmbm部分的值!

表达式表示:
if(sql.indexOf(B)>0)
{
if(C!=null)
{
sql="select * from a where bmbm=C";//直接替换:a_bmbm
}else
{
sql="select * from a where 1=1"//需要bmbm=:a_bmbm替换为1=1,这个算法怎么写?
}
}
...全文
135 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
qixin000 2006-02-13
  • 打赏
  • 举报
回复
实际上你可以把你的变量命名起得更特殊一点
例如 ${name} 这样正则表达式不就好些了吗,
否则像你这样命名 :name 还的判断哪些字符不能作为变量,然后才能确定变量的结尾,有点麻烦
所以还是用我推荐的方式命名,你通过EL表达式语言的定义方式就可以看出这样定义的好处
allenzz 2006-02-13
  • 打赏
  • 举报
回复
这里有篇文章,希望对你有帮助:
http://internet.blog.enorth.com.cn/article/20761.shtml
masse 2006-02-13
  • 打赏
  • 举报
回复
indexOf定位,
substring来取……

或者直接把filter提取出来

String s = "bmbm=''";
String s2="bmbm='B'";

if(s.equals(s2))
{
filter="bmbm=C";
}
else{
filter="";
}

sql="select * from table" + (filter.length()>0?" where "+filter:"");

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧