正则表达式在"之间获取文本符号

时间:2012-09-13 15:23:19

标签: java regex

我收到了这个字符串:

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

2 个答案:

答案 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会更好。