regex - perl regex - 提取函数定义参数

标签 regex perl

eErrorT ChainCtrlExit (ChainCtrlT * pChainCtrl)
ChanT* ChainCtrlGetBitStreamChan (ChainCtrlT * pChainCtrl, 
char * name 
)
eErrorT ChainCtrlInit (ChainCtrlT * pChainCtrl, 
char * name, 
int instance, 
void * pOwner 
)

int SymContDecNamesCount = (sizeof(SymContDecNames)/sizeof(SymContDecNames[0]))
char* SymContEncNames[]
int SymContEncNamesCount = (sizeof(SymContEncNames)/sizeof(SymContEncNames[0]))

I want to extarct only function arguments ...that is 

输出我需要仅提取一行中的函数定义参数

 ChainCtrlT * pChainCtrl
 ChainCtrlT * pChainCtrl, char * name 
 ChainCtrlT * pChainCtrl, char * name, int instance, void * pOwner  

我的代码

open(FILE, "< functions2.txt") or die $!;
open(FILE1, "> functions3.txt") or die $!;            

my @Array1=<FILE>;
foreach my $text (@Array1){
   $text =~ /\((.+)\)/;
   print FILE1 $text;
 }

但它正在将所有内容提取到新文件中。基本上是文件内容的重复

最佳答案

open(my $FILE, "<", "functions2.txt") or die $!;
open(my $FILE1, ">", "functions3.txt") or die $!;            


my $s = do { local $/; <$FILE>; };
while ($s =~ /^ \S+ \s+ \S+ \s* \( (.+?) \) /xsmg) {
  my $arg = $1;
  $arg =~ tr|\r\n||d;
  print $FILE1 "$arg\n";
}

关于regex - perl regex - 提取函数定义参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19024229/

相关文章:

regex - 如何在Jmeter中使用正则表达式提取多个值

regex - 如何正则表达式 - 匹配模式但排除?

regex - 正则表达式解析国际 float

regex - 使用 Perl 提取方括号 "[]"之间的数据

perl 确定 URL SSL 证书 key 长度

Python 正则表达式不匹配。 (点)作为字符

javascript - 使用变量生成正则表达式以用于 javascript 的替换函数

perl - 使用 perl XML::LibXML 解析

regex - 查找多次出现的单词

java - java 是否支持 if-then-else 正则表达式构造(Perl 构造)?