python - 使用 Python 和正则表达式删除数组初始化代码
问题描述
我有一个自动生成的 .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*\};
这个正则表达式只会找到 variable_1、variable_2、variable_5 和 variable_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*\};
推荐阅读
- c++ - 维护当前选定的对象是否可以很好地使用状态模式?
- linux - Xinetd 服务器连接被拒绝
- rest - Yii2 Rest Controller 和公共变量
- javascript - 在 Bootstrap 卡中显示加载程序
- smooch - Smooch: How to trigger postback when user clicks a button?
- vbscript - 查找字符串并相应地重新格式化
- sql - 运行时错误“3704”关闭对象时不允许操作。VBA 中的 SQL 语句
- maven - 带有 Netbeans/Maven 注释的 Lombok 未被识别/工作
- c# - Xamarin IOS 应用程序崩溃异常:EXC_BAD_ACCESS (SIGABRT)
- html - ul 浮动在父 div 底部边框上