请教一个string.replaceall正则问题

CityOfAngels 2011-04-28 10:36:14
有个url比如:http://test.com/test.do?aaa=1&bbb=234&ccc=567

我现在要用string.replaceall把“&bbb=234”替换成空,怎么写正则,bbb参数名是已知的,后面的参数值未知,也就是长度未知,怎么通过正则替换呢?最后替换后的结果是http://test.com/test.do?aaa=1&ccc=567

...全文
87 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ETCentury 2011-04-28
  • 打赏
  • 举报
回复

String s = "http://test.com/test.do?aaa=1&bbb=234&ccc=567";
String ss = s.replaceAll("bbb=.+&", "");
System.out.println(ss);


加号好呢还是乘号好呢?
yingzhuo2011 2011-04-28
  • 打赏
  • 举报
回复
s.replaceAll("bbb=.*?&", "");

这个地方要小心,假如正则不应该是贪婪式正则,要加勉强型的。
qybao 2011-04-28
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 leehomwong 的回复:]
那不是把后面的&也去了。。值常见的只有数字,字母吧。。
[/Quote]
bbb前面不是还有个&吗?应该需要这特殊字符,否则没法判断到哪开始属于ccc
24K純帥 2011-04-28
  • 打赏
  • 举报
回复
那不是把后面的&也去了。。值常见的只有数字,字母吧。。
qybao 2011-04-28
  • 打赏
  • 举报
回复
have a try
String s = "http://test.com/test.do?aaa=1&bbb=234&ccc=567";
String ss = s.replaceAll("bbb=.*&", "");
System.out.println(ss);
lost_guy_in_scut 2011-04-28
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 bao110908 的回复:]
&bbb=[^&]*
[/Quote]
hao.
  • 打赏
  • 举报
回复
&bbb=[^&]*
lanjingling539 2011-04-28
  • 打赏
  • 举报
回复
import java.util.regex.*;
public class Test2 {
public static void main(String[]args){
String str="http://test.com/test.do?aaa=1&bbb=234&ccc=567";
String pat="&bbb=\\d+";
Pattern p=Pattern.compile(pat);
Matcher m=p.matcher(str);
String newString=m.replaceAll("");
System.out.println(newString);


}
}
输出结果为:
http://test.com/test.do?aaa=1&ccc=567

62,615

社区成员

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

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