2015-08-15 36 views
0

提取函數名,我有:在不同的C文件 函數名的格式如下:Python的正則表達式不從線

void function0__ROM(void) { 
    code for the function 
    } 
void function1__ROM(void) { 
    code for the function 
    } 

我在python提取函數名寫了一個正則表達式,但不知何故,它不工作。

以下是我的正則表達式:

match= re.search("\n\s*?(void|BYTE|WORD|bit)(\s*?\*\s*?)?\s+?)?\s+\?(" +func.name[l:]+ ")(__ROM)?\s*?\(.*?\)s*?[{]".file) 

我是新來的蟒蛇,經過大量的研究寫了這個正則表達式,但不知何故,它無法正常工作。

回答

0
r"\s*(void|BYTE|WORD|bit)\s+"+func.name[1:]+"__ROM\s*\([^\)]*\)\s*{?\s*" 
  • 函數名
  • 支架
  • 一切究竟是不是支架
  • )的空間和可能{
+0

正則表達式工作的大部分時間之一。但是對於如下所示的行:WORD function0__ROM(WORD time){它失敗了 – Linocomp

+0

我在正則表達式的末尾添加了\ s *(在行尾有可能的空格)。讓我知道如果沒關係。 – Andrew

+0

nope。不知何故,它不工作。 :( – Linocomp