-2

我在 python 上找到了我的任务的解决方案。但我根本不知道python。代码:

import re
import json
a = open('test.txt').read()
a = re.sub('"[ \t]*"', '":"', a)
a = re.sub('"\s+"', '","', a)
a = re.sub('"\s+{', '":{', a)
a = re.sub('}\s+"', '},"', a)
a = '{%s}' % a
b = json.loads(a) 

试图通过类比将其转换为php:

$a = file_get_contents('test.txt');
$a = preg_replace('"[ \t]*"', '":"', $a);
$a = preg_replace('"\s+"', '","', $a);
$a = preg_replace('"\s+{', '":{', $a);
$a = preg_replace('}\s+"', '},"', $a);
$a = '{'.$a.'}';
$b = json_decode($a);

但似乎表达方式是错误的。有人可以帮忙吗?

4

1 回答 1

2

在 PHP 中,我认为正则表达式需要在 2 x 以内,/例如

$a = preg_replace('/"[ \t]*"/', '":"', $a);

编辑:正如安德烈所提到的,分隔符不一定需要是正斜杠,但是我认为您使用的双引号应该用作正则表达式的一部分,而不是分隔符。

于 2013-10-07T11:48:20.803 回答