javascript - 什么 perl 正则表达式可以正确匹配 javascript 关联数组?

标签 javascript json regex 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 最终未初始化。

最佳答案

my ($json_str) = $js_code =~ m/var\smaterials\s=\s*({[\s\S]+?}),/i;

                                                      ^^^^

问题是默认不匹配\n。所以要么使用[\s\S],要么使用 (?s) DOTALL 标志。

查看演示。

https://regex101.com/r/cJ6zQ3/7

https://regex101.com/r/cJ6zQ3/8

关于javascript - 什么 perl 正则表达式可以正确匹配 javascript 关联数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32959924/

相关文章:

javascript - 使用 React 和 Axios 更新 Firebase 中的数据

c# - 尝试将具有空属性名称的 JSON 转换为 XML 时出现异常

java - 使用正则表达式验证输入字符串是否为 0-255 之间的数字

regex - R - gsub 替换反斜杠

javascript - 函数只执行到一半

javascript - 以编程方式切换到 Ext JS 中的下一个控件

javascript - 如何在 jQuery 中将一个函数应用于多个图像?

javascript - 生成四个随机数并将其附加到 DOM

javascript - MongoDB 属性迭代

c# - 在 JSON.NET 中如何获取对每个反序列化对象的引用?