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 に答える