阅读所有相关主题后,我找不到任何显示能够从 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 中提取分类对象,所以我剩下以下内容:{"page":"/products/1/","price":"350.00""country_code":"gb","brand":"apple"}
然后我可以 json_decode
如果有人能帮助我找到正确的正则表达式,我将不胜感激,谢谢。
最佳答案
这个正则表达式模式应该可以工作,但这取决于您的完整 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);
}
关于php - 使用 PHP 正则表达式从 html 中提取 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45879184/