我收到了这个字符串:
"streamUrl":"http://media.mysite.com/stream/WF9bRDueA0sm?stream_token=f2EmQ",
好的,现在我在java中有一个函数
Pattern p = Pattern.compile(
"<row><column>(.*)</column></row>",
Pattern.DOTALL
);
Matcher matcher = p.matcher(code); //That is the code up, "streamUrl...
if(matcher.matches()){
testo2.setText(matcher.group(1));
}
好了,我现在必须更改正则表达式模式以获取
之间的文本"streamUrl":"
和
",
这是特殊的字符,我不知道如何将它添加到模式中,我尝试了
Pattern.compile(
"Pattern.compile(
""streamUrl":"(.*)",",
Pattern.DOTALL
);(.*)</column></row>",
Pattern.DOTALL
);
但它不起作用,有人可以帮助我吗? 我需要得到这个:http://media.mysite.com/stream/WF9bRDueA0sm?stream_token=f2EmQ 谢谢你的建议,matteo:)
答案 0 :(得分:5)
您可以尝试使用JSONTokener
try {
JSONTokener tokener = new JSONTokener(yourString);
JSONObject jsonObj = (JSONObject) tokener.nextValue();
String output = jsonObj.getString("streamUrl");
} catch (JSONException e) {
Log.v("Logtag", "Problem in decoding json");
e.printStackTrace();
}
答案 1 :(得分:2)
您匹配的方式是:
String regex = "\"streamUrl\":\"(.*)\",";
Pattern p = Pattern.compile(regex);
但正如评论中所述,使用JSON会更好。