我有一些需要用 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
最终未初始化。
最佳答案
my ($json_str) = $js_code =~ m/var\smaterials\s=\s*({[\s\S]+?}),/i;
^^^^
问题是。
默认不匹配\n
。所以要么使用[\s\S]
,要么使用 (?s)
DOTALL
标志。
查看演示。
https://regex101.com/r/cJ6zQ3/7
或
关于javascript - 什么 perl 正则表达式可以正确匹配 javascript 关联数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32959924/