首页 / JSON / php正则匹配截取json
php正则匹配截取json
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php正则匹配截取json,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1326字,纯文字阅读大概需要2分钟。
内容图文
![php正则匹配截取json](/upload/InfoBanner/zyjiaocheng/235/3dde17c2905b4bdca0d8111608421e6a.jpg)
$script='';
怎么把contacts中间的[{"id":6,"nickname":"yan","remarkname":"","groupid":0},{"id":8,"nickname":"mm","remarkname":"","groupid":0},{"id":4,"nickname":"gg","remarkname":"","groupid":0},{"id":2,"nickname":"sa","remarkname":"","groupid":0}]这段截取出来?
回复内容:
请教一个正则截取问题
$script='';
怎么把contacts中间的[{"id":6,"nickname":"yan","remarkname":"","groupid":0},{"id":8,"nickname":"mm","remarkname":"","groupid":0},{"id":4,"nickname":"gg","remarkname":"","groupid":0},{"id":2,"nickname":"sa","remarkname":"","groupid":0}]这段截取出来?
(?<="contacts"\:\[){.*}(?=\].*\.contacts)
注:PHP里好像需要把"转义一下变成\"
顺便推荐一个正则参考用的网址:http://deerchao.net/tutorials/regex/regex.htm
PHP的DEMO:
preg_match_all("/\[{.*?\}]/is", $script, $matches);
$result = json_decode($matches[0][1]);
这个正则不是最佳方案,不过结果是你想要的就是。
我觉得没必要把中间的截取出来,
- 很简单的就可以把前后两个script剥离
- json_encode剩下的字符串
- 访问你需要的值
------------------ update ------------------
preg_match_all("/(?<=contacts\":)\s*\[\s*\{(.*?)\]/", $script, $matches);
var_dump($matches);
结果:
array(1) {
[0]=>
array(1) {
[0]=>
string(226) "[{"id":6,"nick_name":"yan","remark_name":"","group_id":0},{"id":8,"nick_name":"mm","remark_name":"","group_id":0},{"id":4,"nick_name":"gg","remark_name":"","group_id":0},{"id":2,"nick_name":"sa","remark_name":"","group_id":0}]"
}
}
关于那个正则表达式你可以在这个网站中优化:
debuggex
内容总结
以上是互联网集市为您收集整理的php正则匹配截取json全部内容,希望文章能够帮你解决php正则匹配截取json所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。