我目前有一些这样的网址:
?param=value&offset=19&size=100
或者那样:
?offset=45&size=50¶m=lol
我想为每种情况删除“偏移”和“值”。我正在使用正则表达式方法,但我不明白它是如何工作的......你可以帮助我吗? 我还想获得偏移量和大小的两个值。
这是我的工作......
\(?|&)offset=([0-9])[*]&size=([0-9])[*]\
但它根本不起作用!
感谢。
答案 0 :(得分:2)
假设是Javascript&你只想删除偏移参数:
str.replace(\offset=[0-9]*&?\,"")
对于Java:
str=str.replaceAll("offset=[0-9]*&?","");
//to remove & and ? at the end in some cases
if (str.endsWith("?") || str.endsWith("&"))
str=str.substring(0,str.length()-1);
答案 1 :(得分:1)
没有正则表达式。
String queryString ="param=value&offset=19&size=100";
String[] splitters = queryString.split("&");
for (String str : splitters) {
if (str.startsWith("offset")) {
String offset = str.substring(str.indexOf('=') + 1);//like wise size also
System.out.println(offset); //prints 19
}
}
答案 2 :(得分:1)
如果你需要为此使用正则表达式,那么在java中为正则表达式尝试这个字符串(不用替换):
"(?>(?<=\\?)|&)(?>value|offset)=.*?(?>(?=&)|$)"
它将删除URL中名为“offset”或“value”的所有参数。它还将保留URL中其他参数的任何必需参数标记。