簡體   English   中英

使用Python和正則表達式刪除數組初始化代碼

[英]Remove array initialization code using Python and regular expressions

我有一個自動生成的.h文件。 在此.h文件中,存在以以下方式初始化的數組。

char variable_1[1] = { 0 };
char variable_2[16] = 
  {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
char variable_3[128] = 
  {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
   0,0,0,0,0,0,0,0,0,0,0};


char variable_4[63] = 
  {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
char variable_5[1] = { 0 };
char variable_6[32] = 
  {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};

我在Python中使用以下正則表達式:

^char\s+variable_\w+\[\w*\]\s*=\s*\{\s*[0,]*\s*\};

此正則表達式將僅找到變量_1,變量_2,變量_5和變量_6。 但是,我需要找到這些數組的所有實例,並刪除初始化並保留數組名稱。

char variable_1[1];
char variable_2[16];
char variable_3[128];
char variable_4[63];
char variable_5[1];
char variable_6[32];

有沒有辦法用Python做到這一點?

您不檢查數組內部的空格。 嘗試:

^char\\s+variable_\\w+\\[\\w*\\]\\s*=\\s*\\{\\s*[0,\\s]*\\s*\\};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM