c - 如何在任何 C 函数开始之后和函数结束之前插入文本行?

标签 c regex grep

我有数百个 C 函数,例如

void test()
{
    <content of function>
}

(函数可能有返回值 UBYTEBOOLWORD、...)

现在我想向所有函数添加文本,如下所示:

void test()
{
    LABEEL_BEGIN
    <blank line>
    <content of function>
    <blank line>
    LABEL_END
}

因此,我需要在函数开头插入 LABEL_BEGIN 和一个空行,并在函数末尾插入一个空行和 LABEL_END

我认为这可能通过一些棘手的正则表达式来实现!?或者有没有可用的文本编辑器具有这样的功能?目前,我有 MS Studio 2013 IDE、Notapad++、Textpad、PSpad 以及 GNU grep 2.4.5 命令行工具。

最佳答案

以下正则表达式将选择每个 void、其名称、任何参数及其第一个左大括号。如果将其与输入进行匹配,则可以使用它的匹配索引和匹配长度来查找 void 内部内容的开始索引。然后,您可以在索引中添加其他内容。

(void [\w_][\w\d_]*\(.*\)(\r|)(\n|){)

请随意在这里尝试一下:https://regexr.com/3jarc

要获得函数的结尾,您可以使用上面的正则表达式作为正向后查找,然后匹配结束的“}”。

关于c - 如何在任何 C 函数开始之后和函数结束之前插入文本行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48298157/

相关文章:

c - 格式参数太多 [-Wformat-extra-args]

regex - 去正则表达式 : how I can replace named groups by concrete values in source pattern?

regex - 使用 sed 将不可打印的代码替换为他们的 vi 编辑器代码

git:所有以前版本中的grep文件

python - 从 python 控制台使用 grep

c - 如何在 C 中直接访问原始高清数据?

c++ - 为有限范围的 N 个整数数组实现查找数组

linux - 通过检查多个条件提取字符串的一部分 - Shell 脚本

c - C 程序输出有问题

javascript - 检查 id 是否与模式匹配