我有一个小的 JS 例程,它使用正则表达式从 C++ 文件中获取函数名称及其参数。函数名是在没有返回值的情况下获得的。一切正常,除了它无法识别函数名和参数列表 (
的左括号之间有空格的情况。例如,如果 C++ 文件具有以下内容:
int func1(lh, rh);
void func2(lh, rh);
int r = func1(10, 20);
例程返回
func1(lh, rh)
func2(lh, rh)
func1(10, 20)
但是如果我们在函数名后面加一个空格,那么这个函数就不会被识别为函数。例如,如果声明 func3
如下
void func3 (lh, rh);
那么 func3
不包含在返回值中。
我使用变量 searchRule
在 C++ 文件中搜索函数
var searchRule = /(operator(?:\s*).+|~?\w+)\(.*\)/g
如何更改 searchRule
正则表达式,以便例程也能够处理函数名后的空格?
最佳答案
// ---
var searchRule = /(operator(?:\s*).+|~?\w+)\s*\(.*\)/g
// ---
\s*
= 任何空白字符出现零次或多次
关于javascript - 用于从 C++ 文件解析函数名称的正则表达式 (JavaScript) 在某些空白处不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48541057/