在阅读完所有相关主题后,我找不到任何能够从html内容中提取完整json对象的正则表达式,所以我希望有人可以帮我找到正确的正则表达式来解决问题。
例如,我想要提取的json看起来像这样:
"taxonomy": {"page":"/products/1/","price":"350.00","country_code":"gb","brand":"apple"},
我试图提取html中java脚本函数内的整个“分类法”对象。
我已经尝试preg_match('/\taxonomy\s*=(.+)(?:;|/', $file, $m);
但是没有快乐和正则表达式是我想要学习的东西。
我的目标是让正则表达式解析html并从html中拉出taxonmy对象,所以我离开了以下内容:{"page":"/products/1/","price":"350.00","country_code":"gb","brand":"apple"}
然后我可以json_decode
如果有人能帮助我找到正确的正则表达式,我将不胜感激,谢谢。
答案 0 :(得分:1)
这个正则表达式模式应该可以工作,但这取决于你的完整HTML看起来像什么
<?php
$file = '"taxonomy": {"page":"/products/1/","price":"350.00","country_code":"gb","brand":"apple"},
';
preg_match('@"taxonomy":(.*?)\},@s', $file, $m);
if(!empty($m[1])){
$jsonString = "[".$m[1] . "}]";
$array = json_decode($jsonString, true);
print_r($array);
}