powershell正则表达式 - 提取函数名称C源程序

时间:2012-04-22 20:50:24

标签: regex powershell

我需要提取作为脚本参数给出的C源文件中定义的函数名称。 我对PowerShell不是很熟悉,但不应该是这样的:

If ($FileExists -eq $True)
{
     select-string $args[0] -pattern "\(void\|double\|char\|int\) \.*(.*)"
}

1 个答案:

答案 0 :(得分:2)

我将定义您要搜索的文件扩展名列表,并在Include参数中使用它们,然后通过管道选择字符串并提取捕获组匹配。

dir -Path C:\c-program -Include *.h, *.c -Recurse | Select-String -Pattern '(void|double|char|int) (\w+)\(' | % {$_.Matches[0].Groups[2].Value}

这是使用维基百科中的函数名称的简化示例:

'void incInt(int *y)','int main(int argc, char* args[])','int subtract(int x, int y)' | Select-String -Pattern '(void|double|char|int) (\w+)\(' | % {$_.Matches[0].Groups[2].Value}