Sup*_*hne 3 java string url query-parameters string-operations
我有一个简单的问题,但尚未找到最佳解决方案。
想象一下,我有一个带有名为“ id”的查询参数的URL,类似于以下任何一种格式
我将上面的字符串(可以是上面的任何一个)作为String参数,并想找出删除查询参数id(名称和值)的最简单方法,因此即使删除后,它也是有效的url 。
以下是我的预期输出(按顺序)。
谁能有个好主意?(仅适用于String操作,没有任何util类)
您可以replaceAll像这样使用正则表达式:
String[] urls = new String[]{
"xxxxxxxxxxxxx?id=123", "xxxxxxxxxxxxx?id=123&xxxxxxxx",
"xxxxxxxxxxxxx?xxxxxx&id=123", "xxxxxxxxxxxxx?xxxxxx&id=123&xxxxx"
};
for (String url : urls) {
System.out.println(
url.replaceAll("([\\?&]id=\\d+$)|(id=\\d+&)", "")
);
}
Run Code Online (Sandbox Code Playgroud)
输出量
xxxxxxxxxxxxx
xxxxxxxxxxxxx?xxxxxxxx
xxxxxxxxxxxxx?xxxxxx
xxxxxxxxxxxxx?xxxxxx&xxxxx
Run Code Online (Sandbox Code Playgroud)
细节
此正则表达式([\?&]id=\d+$)|(id=\d+&)表示要匹配:
([\?&]id=\d+$) 第一组
[\?&]匹配文字?或&字符id其次是字面id意思\d+ 后跟一位或众数$ 行结束| 要么 (id=\d+&) 第二组比赛
id匹配文字id字\d+ 后跟一位或众数&匹配文字&字符如果后面的输入id=可以不是数字,则可以使用\w与\ w单词字符匹配的字符,该字符可以与其中的任何字符匹配[A-Za-z0-9_]
| 归档时间: |
|
| 查看次数: |
192 次 |
| 最近记录: |