" a.county_id = $a.county_id$".replaceAll(" *.county_id*county_id\\$","1=1")

BigBin2002 2010-03-05 11:23:10
" a.county_id = $a.county_id$".replaceAll(" *.county_id*county_id\\$","1=1")为什么结果不是1=1?
...全文
58 4 打赏 收藏 转发到动态 举报
写回复
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
BigBin2002 2010-03-10
  • 打赏
  • 举报
回复
自己解决了,strP="county_id";
sql=sql.replaceAll("\\s([a-zA-Z0-9_\\.])*"+strP+"\\s+like\\s+'%*\\$([a-zA-Z0-9_\\.])*"+strP+"\\$%*'"," 1=1");//将" county_id = $county_id$" 或" county_id like '%$county_id$%'" 替换为" 1=1",即将这个条件去掉
stu202060510 2010-03-05
  • 打赏
  • 举报
回复
String类定义了:
public String replaceAll(String regex,String replacement)
你的正则表达式写的有问题。你首先匹配的是有0次或多次的空格紧接着就匹配".county_i",然后匹配0次或多次"d"....
楼主肯定第一次接触正则表达式
tyson234 2010-03-05
  • 打赏
  • 举报
回复
正则表达式中*表示*前面的符号有0或者多个。句号.表示任意字符。所以应该是这样的。我觉得
" a.county_id = $a.county_id$".replaceAll(".*\\.county_id.*county_id\\$","1=1"
hbgzg3006 2010-03-05
  • 打赏
  • 举报
回复
你写的正则不匹配前面的串,看不懂你写的正则。
1:你是不是想把整个串 替换成“1=1”?
是的话 replaceAll("^.*$","1=1"),不过这样没什么意义,你直接令原始字符串=“1=1”即可了。

62,568

社区成员

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