我有数百个 C 函数,例如
void test()
{
<content of function>
}
(函数可能有返回值 UBYTE
、BOOL
、WORD
、...)
现在我想向所有函数添加文本,如下所示:
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/