javascript - 用于从 C++ 文件解析函数名称的正则表达式 (JavaScript) 在某些空白处不起作用

标签 javascript regex

我有一个小的 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* = 任何空白字符出现零次或多次

Example here

关于javascript - 用于从 C++ 文件解析函数名称的正则表达式 (JavaScript) 在某些空白处不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48541057/

相关文章:

javascript - 想要将输入字段绑定(bind)到 jquery-ui slider 句柄

javascript - 字符串反转 内置 ES6

javascript - 用于验证具有固定范围的十进制数的正则表达式

匹配电话模式逻辑的正则表达式

python - 正则表达式不匹配

python - Pandas str.contains 用于部分字符串的精确匹配

c# - 了解数字范围的正则表达式

javascript - 获取不按顺序排列的数组结果

javascript - 为什么这些解构赋值不等价?

javascript - Greasemonkey 从 url 中删除字符串而不使用正则表达式