当前位置:编程学习 > JAVA >>

如何获取<script>标签里的某个对象的值,利用正则

 。。。。
<script> 
var movie_detail= {
"info_pianyuan":[
{"aid":"51401","hd_type":"720P","wid":"13","left_eye":1,"exclusive":0,"dzone":3,"ispay":0,"3d":0,"pay_type":0,"type":1}],

"video_list":[
{"flash":"1","vid":"675748","vname":"\u5047\u5982\u751f\u6d3b\u6b3a\u9a97\u4e86\u4f60_01(480P)","video_time":"2579000","v_sub_title":"","update_time":"1377532480446","location":"1","ispay":"0","dzone":"1","publish_date":null}],
};
</script>
。。。。
这是一个html的源码转成字符串,前后都有大量字符,请问如何利用正则把info_pianyuan和video_list里面的值取出来? --------------------编程问答-------------------- regex="(?s).*?info_pianyuan\":\[(.*?)\].*?video_list\":\[.*?\].*?";
最后获取到
m.group(1);
m.group(2);
分别是:
{"aid":"51401","hd_type":"720P","wid":"13","left_eye":1,"exclusive":0,"dzone":3,"ispay":0,"3d":0,"pay_type":0,"type":1}

{"flash":"1","vid":"675748","vname":"\u5047\u5982\u751f\u6d3b\u6b3a\u9a97\u4e86\u4f60_01(480P)","video_time":"2579000","v_sub_title":"","update_time":"1377532480446","location":"1","ispay":"0","dzone":"1","publish_date":null}

不过这是json串,还是建议用json的方式解决。。
--------------------编程问答--------------------
引用 1 楼 AA5279AA 的回复:
regex="(?s).*?info_pianyuan\":\[(.*?)\].*?video_list\":\[.*?\].*?";
最后获取到
m.group(1);
m.group(2);
分别是:
{"aid":"51401","hd_type":"720P","wid":"13","left_eye":1,"exclusive":0,"dzone":3,"ispay":0,"3d":0,"pay_type":0,"type":1}

{"flash":"1","vid":"675748","vname":"\u5047\u5982\u751f\u6d3b\u6b3a\u9a97\u4e86\u4f60_01(480P)","video_time":"2579000","v_sub_title":"","update_time":"1377532480446","location":"1","ispay":"0","dzone":"1","publish_date":null}

不过这是json串,还是建议用json的方式解决。。



只要取到info_pianyuan对象的值,后面就可以用json处理,我先试试你说的方法 --------------------编程问答--------------------
引用 1 楼 AA5279AA 的回复:
regex="(?s).*?info_pianyuan\":\[(.*?)\].*?video_list\":\[.*?\].*?";
最后获取到
m.group(1);
m.group(2);
分别是:
{"aid":"51401","hd_type":"720P","wid":"13","left_eye":1,"exclusive":0,"dzone":3,"ispay":0,"3d":0,"pay_type":0,"type":1}

{"flash":"1","vid":"675748","vname":"\u5047\u5982\u751f\u6d3b\u6b3a\u9a97\u4e86\u4f60_01(480P)","video_time":"2579000","v_sub_title":"","update_time":"1377532480446","location":"1","ispay":"0","dzone":"1","publish_date":null}

不过这是json串,还是建议用json的方式解决。。


regex不对吧,编译都通不过。。 --------------------编程问答--------------------
引用 3 楼 u011303595 的回复:
Quote: 引用 1 楼 AA5279AA 的回复:

regex="(?s).*?info_pianyuan\":\[(.*?)\].*?video_list\":\[.*?\].*?";
最后获取到
m.group(1);
m.group(2);
分别是:
{"aid":"51401","hd_type":"720P","wid":"13","left_eye":1,"exclusive":0,"dzone":3,"ispay":0,"3d":0,"pay_type":0,"type":1}

{"flash":"1","vid":"675748","vname":"\u5047\u5982\u751f\u6d3b\u6b3a\u9a97\u4e86\u4f60_01(480P)","video_time":"2579000","v_sub_title":"","update_time":"1377532480446","location":"1","ispay":"0","dzone":"1","publish_date":null}

不过这是json串,还是建议用json的方式解决。。


regex不对吧,编译都通不过。。

某些地方少了个\而已,你尝试补上就行了。。
这个很明显的出错应该学会自己调试。
String regex="(?s).*?info_pianyuan\":\\[(.*?)\\].*?video_list\":\\[.*?\\].*?";
--------------------编程问答--------------------
引用 4 楼 AA5279AA 的回复:
Quote: 引用 3 楼 u011303595 的回复:

Quote: 引用 1 楼 AA5279AA 的回复:

regex="(?s).*?info_pianyuan\":\[(.*?)\].*?video_list\":\[.*?\].*?";
最后获取到
m.group(1);
m.group(2);
分别是:
{"aid":"51401","hd_type":"720P","wid":"13","left_eye":1,"exclusive":0,"dzone":3,"ispay":0,"3d":0,"pay_type":0,"type":1}

{"flash":"1","vid":"675748","vname":"\u5047\u5982\u751f\u6d3b\u6b3a\u9a97\u4e86\u4f60_01(480P)","video_time":"2579000","v_sub_title":"","update_time":"1377532480446","location":"1","ispay":"0","dzone":"1","publish_date":null}

不过这是json串,还是建议用json的方式解决。。


regex不对吧,编译都通不过。。

某些地方少了个\而已,你尝试补上就行了。。
这个很明显的出错应该学会自己调试。
String regex="(?s).*?info_pianyuan\":\\[(.*?)\\].*?video_list\":\\[.*?\\].*?";


嗯,最不爱弄得就是正则,基本要用到就上网求助,哈哈thanks。。有时间再深入学习正则 --------------------编程问答--------------------
引用 4 楼 AA5279AA 的回复:
Quote: 引用 3 楼 u011303595 的回复:

Quote: 引用 1 楼 AA5279AA 的回复:

regex="(?s).*?info_pianyuan\":\[(.*?)\].*?video_list\":\[.*?\].*?";
最后获取到
m.group(1);
m.group(2);
分别是:
{"aid":"51401","hd_type":"720P","wid":"13","left_eye":1,"exclusive":0,"dzone":3,"ispay":0,"3d":0,"pay_type":0,"type":1}

{"flash":"1","vid":"675748","vname":"\u5047\u5982\u751f\u6d3b\u6b3a\u9a97\u4e86\u4f60_01(480P)","video_time":"2579000","v_sub_title":"","update_time":"1377532480446","location":"1","ispay":"0","dzone":"1","publish_date":null}

不过这是json串,还是建议用json的方式解决。。


regex不对吧,编译都通不过。。

某些地方少了个\而已,你尝试补上就行了。。
这个很明显的出错应该学会自己调试。
String regex="(?s).*?info_pianyuan\":\\[(.*?)\\].*?video_list\":\\[.*?\\].*?";


再问下。。。如果我直接要取movie_detail里的值,正则表达式是怎样的? --------------------编程问答-------------------- m.group(1);取到字符串后以
regex=".*?\"(.*?)\":\"(.*?)\",.*?";
同样取
mm.group(1);
mm.group(2);
--------------------编程问答--------------------
引用 7 楼 AA5279AA 的回复:
m.group(1);取到字符串后以
regex=".*?\"(.*?)\":\"(.*?)\",.*?";
同样取
mm.group(1);
mm.group(2);


不是 是想取movie_detail这个里面值的正则如何定义?movie_detail为script标签里的一个对象

...
<script>
...
var movie_detail={}
...
</script>
...
补充:Java ,  Java相关
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,