我有一個函數名稱「ChainCtrlBuildChain」作爲文件(FILE)中的文本。檢查後僅輸出函數定義
A c file(FILE1) with content
VideoChainT* ChainCtrlBuildChain(ChainCtrlT* pChainCtrl, char* pChainName, ChainDefT* pDef)
{
...
{
ModTrace((ModT*) pChainCtrl, "ChainCtrlBuildChain: ERROR, chain init failure [chain: %4.4s inst: %d] [err: %d]\n",
...
}
我的代碼:
my @Array=<FILE>;
my @Array1=<FILE1>;
foreach my $text (@Array1){
if (index($text, $Array[0]) !=-1)
{
print "$text \n";
}
}
給出了這樣的輸出:
VideoChainT* ChainCtrlBuildChain(ChainCtrlT* pChainCtrl, char* pChainName, ChainDefT* pDef)
ModTrace((ModT*) pChainCtrl, "ChainCtrlBuildChain: ERROR, chain init failure [chain: %4.4s inst: %d] [err: %d]\n",
我想這個代替:
VideoChainT* ChainCtrlBuildChain(ChainCtrlT* pChainCtrl, char* pChainName, ChainDefT* pDef)
我必須使它概括爲輸入文件由用戶而不是固定的。
我想
'Perl'not'PERL' – gaussblurinc
只有當它在函數定義的開始時,你纔想匹配字符串?你幾乎不得不寫一個C語言解析器來做到這一點。 – Barmar
也許'etags'和'ctags'可以給你一個靈感。 – choroba