Удалить код инициализации массива, используя Python и регулярные выражения - PullRequest
0 голосов
/ 05 февраля 2019

У меня есть файл .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?

1 Ответ

0 голосов
/ 05 февраля 2019

Вы не проверяете пробелы внутри массивов.Попробуйте:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...