因此,假设我有一个像
这样的字符串 "param1=value1¶m2={"url":"http://somesite.com?someparam=somevalue&someparam1=somevalue1"}¶m3=value3"
我需要它:
param1: value1
param2: {"url":"http://somesite.com?someparam=somevalue&someparam1=somevalue1"}
param3: value3
用Java解析这个问题的最佳方法是什么?到目前为止,我找不到标准Java库的解决方案,我也不想重新发明轮子。
我已经尝试过(但如果我只在那里放置查询参数,它将无效):
String url = "http://www.example.com/something.html?one=11111&two=22222&three=33333";
List<NameValuePair> params = URLEncodedUtils.parse(new URI(url), "UTF-8");
for (NameValuePair param : params) {
System.out.println(param.getName() + " : " + param.getValue());
}
答案 0 :(得分:5)
为什么不使用像正则表达式这样的东西:
例如像这一个".*\\?param1=(.*)¶m2=(.*)¶m3=(.*)$"
这适用于您的网址示例,这就是我添加.*\\?
部分的原因;)
这适用于第一个样本("param1=value1¶m2={"url":"http://somesite.com?someparam=somevalue&someparam1=somevalue1"}¶m3=value3"
- &GT;
param1=(.*)¶m2=(.*)¶m3=(.*)$
当然,如果你的params名字也不是你不知道的东西