下面是script 里面的 内容  我想得到 
"key":1,"title":"\u7ec5\u58eb\u7684\u54c1\u683c01","url":"http:\/\/www.letv.com\/ptv\/pplay\/77505\/1.html",  这条内容,里面的  1 和 url 后面的 http <script type="text/javascript"> var LISTCACHE =[ {
"key":1,"title":"\u7ec5\u58eb\u7684\u54c1\u683c01","url":"http:\/\/www.letv.com\/ptv\/pplay\/77505\/1.html", "pic":"http:\/\/img1.c2.letv.com\/mms\/thumb\/2012\/05\/27\/4a9e475184bc2babf492961bbf2ba8bc\/4a9e475184bc2babf492961bbf2ba8bc_2.jpg"
}, {
"key":2,"title":"\u7ec5\u58eb\u7684\u54c1\u683c02","url":"http:\/\/www.letv.com\/ptv\/pplay\/77505\/2.html", "pic":"http:\/\/img1.c2.letv.com\/mms\/thumb\/2012\/05\/28\/25faf71025166f8ebe1e4d6acbfe72e8\/25faf71025166f8ebe1e4d6acbfe72e8_2.jpg"
},</script >

解决方案 »

  1.   

    key":(\d+)[^\n]+url":"([^"]+)"试试这个
      

  2.   

    String p="key":(\d+)[^\n]+url":"([^"]+)"" 这样不能写我对正则一点都不懂,我要写的是这样的:Elements li=doct.select("script[type]").select("var LISTCACHE");
    String letv = li.toString();//这里面是得到的script 里面的全部内容
    String p = ""; //不知道 这里面则么写正则  
    Pattern pattern = Pattern.compile(p, Pattern.MULTILINE);
    Matcher m = pattern.matcher(letv); while(m.find()) {
    String letvjson = m.group();
    System.out.println(letvjson);
    }
      

  3.   

    LISTCACHE已经是很清晰的结构了,为什么还要用正则提取内容?
    直接用LISTCACHE[0]['key'],LISTCACHE[0]['url']就可以得到了。
      

  4.   


    String p="key\":(\\d+)[^\\n]+url\":\"([^\"]+)\""; //把 \ 和 " 转义下
      

  5.   

    LISTCACHE已经是很清晰的结构了,为什么还要用正则提取内容?
    直接用LISTCACHE[0]['key'],LISTCACHE[0]['url']就可以得到了。
      

  6.   


    他用的java 又不是 js ,不把LISTCACHE转为json,也就使用正则呗
      

  7.   


                Elements li=doct.select("script[type]").select("var LISTCACHE");
                String letv = li.toString();//这里面是得到的script 里面的全部内容
                String regex = "key\":(\\d+)[^\\n]+url\":\"([^\"]+)\"";
                Matcher m = Pattern.compile(regex, Pattern.MULTILINE).matcher(letv);
        while(m.find()){
    System.out.println(m.group(1));
    System.out.println(m.group(2));
                }最后改成这样就行了
      

  8.   

    从LISTCACHE  的内容看,实际上是一个JSONArray,用JSON解析要比用正则解析来的更加符合逻辑。
    所以给你一个思路
    拿到LISTCACHE将其转换为JSONArray,或者将LISTCACHE切分成若干个JSONObject,然后用java的JSON解析来获得里面的key和url值
      

  9.   

    我晕,你这不是JSON表达式吗,干嘛要用正则表达式来做啊。javascript是支持JSON的,用如下语句来取for (var i = 0; i < LISTCACHE.length; i++) {
        //显示key的内容,也就是你要的1
        alert(LISTCACHE[i].key);
        //显示url的内容,也就是你要的http
        alert(LISTCACHE[i].url);
    }
      

  10.   


    看楼主需求呗,感觉正则比解析成json对象效率高些
      

  11.   

    java public static void main(String[] args) {
    String str = "\"key\":1,\"title\":\"\\u7ec5\\u58eb\\u7684\\u54c1\\u683c01\",\"url\":\"http://www.letv.com/ptv/pplay/77505/1.html\",";
    Matcher m = Pattern.compile("\"key\":(.+?),.+?\"url\":\"(.+?)\",.*?").matcher(str);
    while(m.find()){
    System.out.println(m.group(1));
    System.out.println(m.group(2));
    }
    }