regex - 在 main() 之前选择原型
问题描述
我需要一个正则表达式来选择之前的原型main()
。所以对于下面的代码:
#include <stdio.h>
char ga[] = "abcdefghijklm";
void my_array_func(char ca[10]);
void my_pointer_func(char *pa);
int main()
{
/* code */
return 0;
}
原型上方和下方都有一个空行。选定的文本应该是
void my_array_func(char ca[10]);
void my_pointer_func(char *pa);
我目前在 Vim 中的尝试是:
^\w\_.\{-}\(^\nint main\)\@=
但这匹配
char ga[] = "abcdefghijklm";
void my_array_func(char ca[10]);
void my_pointer_func(char *pa);
解决方案
这应该工作
/^$\n\zs.*\n.*\ze\n\nint main
但可能需要一些改进,它不会检查您要选择的 2 行上是否确实存在有效文本。但这里重要的部分:h \zs
是:h \ze
推荐阅读
- javascript - Chrome 扩展:从 HTML 初始化 Selectize.js
- terraform - 是否有“地形”或“元”地形提供者?
- keyboard - 如何仅针对特定键盘布局(karabiner)启用规则?
- java - QSELL 中的 IBM JAVA_HOME 设置不起作用
- python - 在 Python 中使用网格搜索创建维度为 n * 3 的矩阵
- java - 如何从命令行将 JSP 转换为 Servlet?
- javascript - 为什么我的 javascript 函数被打印为未定义?
- amazon-web-services - iot.createKeysAndCertificate 没有按照 AWS 的建议正常工作。如何解决?
- php - PHP:在排序多维对象数组时需要帮助(数组需要按[Zone] => stdClass Object([Description] => Price B Box Circle)排序
- node.js - 开发 NodeJS docker 容器观察文件系统更改并在崩溃时重新启动的最佳方式是什么?