将正则表达式的通配符元素推送到数组

时间:2016-11-19 02:34:20

标签: c++ regex visual-c++ c++-cli

我试图通读一堆代码文件来提取特定函数中使用的所有参数。我正在一次读取一个字符串的文件,我想我可以使用像

这样的模式的正则表达式
"functionName\(.*[\),]"

哪里有功能&过载。第一个参数始终是一个宏字符串,我想将这些通配符元素添加到数组中 如果它找到了

functionName(ARGUMENT_1) or functionName(ARGUMENT_1, ....)

ARGUMENT_1将添加到数组

由于

1 个答案:

答案 0 :(得分:0)

将捕获仅包含一个参数的函数:

\w+\((\w+)\)

这是你在Python中实现它的方法。您可以将此逻辑移植到C ++

import re

pattern = "\w+\((\w+)\)"
text = """functionName(ARGUMENT_1) or functionName(ARGUMENT_1, ....)
functionName(ARGUMENT_2) or functionName(ARGUMENT_2, ....)"""
a = re.findall(pattern,text)
print a

输出:

['ARGUMENT_1', 'ARGUMENT_2']

Regex101上的演示 https://regex101.com/r/cKTn4Q/2