正则表达式应该只找到一个级别的json属性

时间:2013-10-17 22:57:48

标签: regex parsing

我有一个js文件的文本。我想找到函数的所有名称(例如“destroy”,“create”),但我想只找到“第一”级别的函数 - “close:function”或“success:function”不应匹配。 我的正则表达式: \,+ \ s +(\ S + :) \ s +功能 现在我找到了所有的功能名称。请帮助我使用我的正则表达式。

(function () {
    Create("object", {
            customProperty: {
                a: 1,
                b: 2
            },
            property1: 1,
            property2: 2,
            init: function () {

            },
            listeners: {
                close: function (a, b) {
                    return 1;
                }
            }
            destroy: function () {

            },
            create: function () {
                request({
                    success: function (response, record) {}
                });
            }

        }
    }

).call(this);

1 个答案:

答案 0 :(得分:0)

使用标准正则表达式证明这是不可能的。事实上,这是“经典”不可能出现的问题之一,要求CS学生证明用正则表达式无法解决这个问题。

可能有一些扩展正则表达式的变体:JavaScript允许反向引用,但我认为这还不够。

您必须找到替代解决方案。

请参阅:Can regular expressions be used to match nested patterns?