问题描述
有个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
解决方案
解决方案二:
haveatryStrings="http://test.com/test.do?aaa=1&bbb=234&ccc=567";Stringss=s.replaceAll("bbb=.*&","");System.out.println(ss);
解决方案三:
那不是把后面的&也去了。。值常见的只有数字,字母吧。。
解决方案四:
引用2楼leehomwong的回复:
那不是把后面的&也去了。。值常见的只有数字,字母吧。。
bbb前面不是还有个&吗?应该需要这特殊字符,否则没法判断到哪开始属于ccc
解决方案五:
s.replaceAll("bbb=.*?&","");这个地方要小心,假如正则不应该是贪婪式正则,要加勉强型的。
解决方案六:
Strings="http://test.com/test.do?aaa=1&bbb=234&ccc=567";Stringss=s.replaceAll("bbb=.+&","");System.out.println(ss);
加号好呢还是乘号好呢?
解决方案七:
importjava.util.regex.*;publicclassTest2{publicstaticvoidmain(String[]args){Stringstr="http://test.com/test.do?aaa=1&bbb=234&ccc=567";Stringpat="&bbb=\d+";Patternp=Pattern.compile(pat);Matcherm=p.matcher(str);StringnewString=m.replaceAll("");System.out.println(newString);}}输出结果为:http://test.com/test.do?aaa=1&ccc=567
解决方案八:
&bbb=[^&]*
解决方案九:
引用7楼bao110908的回复:
&bbb=[^&]*
hao.