Java 正则表达式获取“符号”之间的文本

Java 正则表达式获取“符号”之间的文本,java,regex,Java,Regex,我得到了这个字符串: "streamUrl":"http://media.mysite.com/stream/WF9bRDueA0sm?stream_token=f2EmQ", 好的,现在我有了一个java函数 Pattern p = Pattern.compile( "<row><column>(.*)</column></row>", Patte

我得到了这个字符串:

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

            }

这是特殊字符,我不知道如何将其添加到图案中,我试着

Pattern.compile(
                    "Pattern.compile(
                    ""streamUrl":"(.*)",",
                    Pattern.DOTALL
                );(.*)</column></row>",
                    Pattern.DOTALL
                );
但它不起作用,有人能帮我吗? 我需要得到这个:
感谢您的建议,matteo:

您可以尝试使用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();
}

您匹配它的方式是:

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

但是,正如注释中所说的,你最好使用JSON。< /P>不,你拥有的是JSON字符串的一部分。把整个事情看作是一个JSON对象,正确地解析它和访问元素。匹配和子串是SOOOO低级搜索Web的JSON LIB……对于记录,发现任何类型的匹配符号不是正则语言,因此无法与标准正则表达式匹配,尽管有一些看起来很糟糕的方法可以使正则表达式变为非正则表达式。答案中的第三方库绝对是您的最佳选择。您可以将字符串拆分为:作为分隔符,然后将结果数组的最后两个元素合并,但我建议您仔细检查提取字符串的正确通道。这是一个比用正则表达式imho解析字符串更干净的解决方案。嗨,我正在尝试这个解决方案…但是我在编译时遇到了一个错误,我不太擅长try/catch和java,它告诉我们:未处理的异常类型JSONExceptionadded try catch blocks。请立即尝试。非常感谢,但现在我在代码中遇到了这个错误:类型不匹配:无法从int转换为boolean,我尝试删除if Log.DEBUG,但当我单击并必须使用此函数时,我的应用程序崩溃…我能做什么?你能打印完整的错误吗?为什么不尝试完全删除Log.v行。

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();
}
String regex = "\"streamUrl\":\"(.*)\",";
Pattern p = Pattern.compile(regex);