php - 使用 PHP 正则表达式从 html 中提取 JSON 对象

标签 php json regex parsing html-parsing

阅读所有相关主题后,我找不到任何显示能够从 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);
}

https://regex101.com/r/fytDO8/1/

关于php - 使用 PHP 正则表达式从 html 中提取 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45879184/

相关文章:

Javascript正则表达式匹配两个字符串之间的子字符串,但子字符串可以包含点(.)

java - 使用 java.util.scanner.hasNext(regex) 获取整行

mysql - 通过正则表达式连接 MySQL 表(下划线后)

php - 尽管条件仍然为真,为什么这个 for 循环似乎没有执行?

php - 如何使用来自 discord oauth2 登录的访问 token 来获取用户信息

javascript - 使用 jQuery 解析 JSON 数据

php - 将 JSON 传递给 PHP 不起作用

PHP mysql infile 不工作

php - 如何使用 Laravel Broadcasting 在一个线程中连接两个随机的人

java - 存储 Java UI 应用程序配置/设置的最佳实践