0

我得到了这个字符串:

"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 :)

4

2 回答 2

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();
}
于 2012-09-13T15:29:44.450 回答
2

你匹配它的方式是:

String regex = "\"streamUrl\":\"(.*)\",";
Pattern p = Pattern.compile(regex);

但正如评论中所述,使用 JSON 会更好。

于 2012-09-13T15:31:02.513 回答