有这样的数据:{'id': '3', 'answer': '1'},{'id': '4', 'answer': 'здесь ответ на вопрос, 12345 abc'},{'id': '4', 'answer': '123'}。您需要在“'answer':”之后获取引号中的文本,我不能在正则表达式中真正做到这一点,结果类似于/'answer':.['](\W+[a-zA-Z0-9_]\S+\s\w+)|:.'(\w+)[']}/,使用这样的表达式碰巧没有提取整个值(如果在12345 abc 你再添加一个空格,正则表达式已经中断),或者一般什么都没有被拉出。请告诉我如何为此制作正则表达式。
首先,您需要将您的字符串转换为有效的 JSON。首先,我们将单引号转换为双引号。
这可以通过以下功能完成:
为了使字符串按应有的方式解析,在转换之后,我们将字符串括在方括号中并使用函数
json_decode:然后剩下的就是遍历所有的元素,获取keys中的value值
answer:查看代码如何在 PHP 中工作的示例。