2013-07-09 201 views
2

更换设计模式,我目前一些URL是这样的:查询字符串

?param=value&offset=19&size=100 

或类似的:

?offset=45&size=50&param=lol 

而且我想删除了每种情况的“偏移”和“值”。我使用正则表达式的方法,但我不明白它是如何工作的...你能帮我一下吗? 我也想获得偏移量和大小的值。

这是我的工作......

\(?|&)offset=([0-9])[*]&size=([0-9])[*]\ 

不过,这并不在所有工作!

谢谢。

回答

2

假设是使用Javascript &你只是想删除OFFSET PARAM:如果你需要使用正则表达式此那就试试这个字符串

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); 
+0

我正在使用java se。它是否相同? – christophedebatz

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 
     } 
    } 
1

str.replace(\offset=[0-9]*&?\,"") 

对于Java在java中用于正则表达式(无替换):

"(?>(?<=\\?)|&)(?>value|offset)=.*?(?>(?=&)|$)" 

它将删除URL中名称为'offset'或'value'的任何参数。它还会保存URL中其他参数所需的任何参数标记。