我有一些JavaScript代码,我需要用Perl来分析:perl正则表达式将正确匹配javascript关联数组?
var materials ={
foo: "bar",
bar: "baz",
baz: "foo"
},
我有此Javascript变量作为字符串,我想匹配的关联数组的身体,这样我可以解析它作为使用parse_json()
的Perl的JSON。我想不通,我用我的正则表达式做错了什么:
my ($json_str) = $js_code =~ m/var\smaterials\s=\s+({.+}),/i;
$json_str
最终被初始化。
你可能只是看它不同。现在你正试图匹配字符串的json部分。修复你的正则表达式将是微不足道的(允许'\ s *'而不需要'\ s +')。但是,JSON可能比这个例子更复杂。放弃你不想要的部分可能会更容易:'s/^ [^ {] + //'。这将剥夺第一个“{”之前的所有内容。 – DavidO
你究竟想要做什么? 'JSON.stringify(材料)'会给你真正的JSON开始,这使得一切都变得更加容易。 –