我有一个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);
答案 0 :(得分:0)
使用标准正则表达式证明这是不可能的。事实上,这是“经典”不可能出现的问题之一,要求CS学生证明用正则表达式无法解决这个问题。
可能有一些扩展正则表达式的变体:JavaScript允许反向引用,但我认为这还不够。
您必须找到替代解决方案。
请参阅:Can regular expressions be used to match nested patterns?