我有一些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開始,這使得一切都變得更加容易。 –