Javascript Regex:如何匹配除test()之外的所有函数调用?
我正在读取一些文件内容,我想匹配所有不是nodejs中的Javascript Regex:如何匹配除test()之外的所有函数调用?,javascript,regex,node.js,Javascript,Regex,Node.js,我正在读取一些文件内容,我想匹配所有不是nodejs中的test()的函数调用test()可以有任何类型的参数,并尽可能多。所有匹配的函数应包括所有参数,包括关闭)。例如 test({ firstname: firstname({ userid: 12 }), lastname: lastname({ userid: 12 }) }); 在上面的例子中,firstname和lastname是匹配的,结果匹配的字符串应该是firstname({userid:12})和lastname({
test()
的函数调用test()
可以有任何类型的参数,并尽可能多。所有匹配的函数应包括所有参数,包括关闭)
。例如
test({
firstname: firstname({ userid: 12 }),
lastname: lastname({ userid: 12 })
});
在上面的例子中,firstname和lastname是匹配的,结果匹配的字符串应该是firstname({userid:12})
和lastname({userid:12})
试图单独用regex解析它。你可以用它们来帮助你,但不是做所有的工作
例如,尝试使用
\b[a-zA-Z]+\({
(或者甚至\b[a-zA-Z]+\s*\(\s*{
,如果您的代码没有您在此处放置的示例那么干净)匹配每个函数调用,然后迭代结果以找到那些没有调用test
的函数。如果有什么东西阻止了我,我不会问。首先,尝试解析代码是个坏主意。重新考虑您的设计。其次,您没有指定要解析的代码的语言。Javascript?第三,正则表达式不符合要求问匹配的括号。好吧,现在我们有一个问题。但听起来你确实有一套要求,你希望有人为你编写代码。这不是StackOverflow的意思。如果你尝试了一些东西,你认为它应该有效,但由于某种原因它不起作用,那么你应该问一下。这是一个具体的问题基于您实际编写的代码的问题。但是,接受这样一个复杂的任务并要求一个正则表达式来完成您想要的任务是非常不合理的。但是要回答您的问题……要么编写一个JavaScript解析器,要么使用现有的解析器并分析其输出。“非常复杂的任务”-我现在用一行代码解决了它。你真的不应该假装这与实际的解决方案非常接近。这会错过很多函数调用。更不用说你没有捕获参数。我不是在“假装”你知道,你应该放松一点。此外,你可以暗示那些表达式会错过什么类型的函数调用,以便调整建议。(function(){})(args))
(和其他变体)…foo[“bar”](args)
…(foo)(args)
。foo[“b”+a(args)+“r”](args)
…foo[(a+b()/c)%d](args)
…新函数(“foo”,“return foo+'bar'”)(args)
…foo(args)(
)等等。根据海报给出的示例,我非常确定文件中没有任何一个变体。现在我看到你没有帮助,只是愤怒(或者试图展示你惊人的javascript技能[?])。gl。回家睡觉吧,疯狂训练。我们不需要像你这样的人。