2

我目前有一些这样的网址:

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

或者像这样:

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

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

这是我的工作...

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

但它根本不起作用!

谢谢。

4

3 回答 3

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);
于 2013-07-09T07:44:14.210 回答
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
        }
    } 
于 2013-07-09T07:42:37.767 回答
1

如果您需要为此使用正则表达式,请在 java 中尝试使用此字符串作为正则表达式(替换为空):

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

它将删除 URL 中名为“offset”或“value”的任何参数。它还将为 URL 中的其他参数保留任何必需的参数标记。

于 2013-07-09T08:11:13.463 回答