Javascript JS:正则表达式,用于查找函数体中的所有函数调用

Javascript JS:正则表达式,用于查找函数体中的所有函数调用,javascript,regex,Javascript,Regex,我需要一个正则表达式来返回以APP(“name”)开头的函数的参数 所以在本例中,只有第二行匹配,它将返回文本名- testing text: var w = app("name").test var x = APP("name").test() var y = SNAPP("name").test() var z = APPLICATION("name").test() 我尝试了一些东西,但不起作用: thx,您只需要添加一个单词边界,并且必须转义()括号,以便它与文本(,)符号匹配 /\

我需要一个正则表达式来返回以APP(“name”)开头的函数的参数

所以在本例中,只有第二行匹配,它将返回文本名-

testing text:

var w = app("name").test
var x = APP("name").test()
var y = SNAPP("name").test()
var z = APPLICATION("name").test()
我尝试了一些东西,但不起作用:


thx,

您只需要添加一个单词边界,并且必须转义
()
括号,以便它与文本
符号匹配

/\bAPP\(([^()]*)\)/
\b
匹配单词字符和非单词字符的单词边界。从组索引1中获取所需的字符串

试试这个:

\sAPP\(\s*\S.*\)
您正在学习SNAPP()和APP()


\s检查函数名前面是否有空格

正则表达式:

\bAPP\("([^")]+)
尝试此操作。请参阅演示。从组索引1中获取所需的字符串


vks的答案可能是一个更好的解决方案,如果等号和函数名之间没有空格,这就是选择所有应用程序(“名称”)。test()->我只需要“name”这可能会帮助你阅读Regex的《这本书是免费的,免责声明》,我写的。。有没有可能只获取“name”而不是APP(“name”@kevinius你必须抓取捕获或group@kevinius您的预期输出是什么?
名称
名称
。我不想进一步编辑我的答案。也许我应该发布一个新问题,我想我不清楚enouph,因为我需要一个匹配列表。例如,如果我有这个字符串,那么我想要一个名称数组,name1,name2-var str='测试文本:\n\nvar w=app(“name”).test\nvar x=app(“name”).test()app(“name2”).test()app()(“name3”).test()\nvar y=snap(“name”).test()\nvar z=APPLICATION(“name”).test()”;同时发布了一个名为name1、name2(无)的数组,但我没有看到您的数组。有3分钟的间隔:)如果op想要匹配字符串
APP()
,这应该会返回一个空字符串。但是你的不会。OP清楚地提到他想要
名称
,就是这样。而且你以前的正则表达式是
^APP\(“([^”)]+)
是的,我的也返回字符串
名称
。是的,我同意一开始我以为
var
是一个变量名,输入字符串中不包含它,但在看到他的正则表达式后,我意识到它不是。然后我纠正了我的错误。
\bAPP\("([^")]+)
> var s = 'var x = APP("name").test()';
undefined
> console.log(/\bAPP\("([^")]+)/.exec(s)[1]);
name