社区
Java SE
帖子详情
" 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
打赏
收藏
" a.county_id = $a.county_id$".replaceAll(" *.county_id*county_id\\$","1=1")
" a.county_id = $a.county_id$".replaceAll(" *.county_id*county_id\\$","1=1")为什么结果不是1=1?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
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”即可了。
相关推荐
前端大厂最新面试题-2019快看漫画前端社招面经.docx
前端大厂最新面试题-2019快看漫画前端社招面经.docx
gedit-folding-master.zip
gedit-folding-master.zip
前端大厂最新面试题-css布局.docx
前端大厂最新面试题-css布局
前端大厂最新面试题-js.docx
前端大厂最新面试题-js.docx
SPC实用培训资料.ppt
SPC实用培训资料.ppt该文档详细且完整,值得借鉴下载使用,欢迎下载使用,有问题可以第一时间联系作者~
Java SE
62,568
社区成员
307,521
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告