【发布时间】:2016-01-02 18:40:20
【问题描述】:
我有一些需要用 Perl 解析的 Javascript 代码:
var materials ={
foo: "bar",
bar: "baz",
baz: "foo"
},
我将这个 Javascript 变量作为一个字符串,我想匹配关联数组的主体,以便我可以使用 Perl 使用 parse_json() 将其解析为 JSON。我无法弄清楚我的正则表达式做错了什么:
my ($json_str) = $js_code =~ m/var\smaterials\s=\s+({.+}),/i;
$json_str 最终未初始化。
【问题讨论】:
-
您可能只是以不同的方式看待它。现在您正在尝试匹配字符串的 json 部分。修复您的正则表达式将是微不足道的(允许
\s*而不是要求\s+)。但是,JSON 可能比此示例更复杂。删除不需要的部分可能更容易:s/^[^{]+//。这将删除第一个{之前的所有内容。 -
不过,您实际上想做什么?
JSON.stringify(materials)将为您提供真正的 JSON,让一切变得更容易。
标签: javascript json regex perl