Perl - Pattern包含新行

时间:2013-05-20 05:40:29

标签: perl

我正在尝试从perl脚本中的C文件中获取所有函数。

模式示例:

function return type  
function name (function parameters)  
{  

到目前为止,我有:m/^(.*)\((.*)\)/

但是这也抓住了函数内部的函数,例如if语句,所以我希望匹配{,因为这会消除所有内部函数,但m/^(.*)\((.*)\)/\n\{/ 不起作用。

如何匹配\n{ ,即下一行中的{,以便我可以抓住

add(int a, int b)  
{  

...但要避免,说

if(a = b)  

2 个答案:

答案 0 :(得分:2)

在CPAN上查看C::Scan结束

答案 1 :(得分:1)

在C源中没有要匹配的星号。因此,请在模式中的星号前删除反斜杠。

以下内容可能更符合您的要求:

m/^(.*?\(.*?\))\s*\n{/m