我想在我的项目中插入doxygen注释。我希望尽可能自动执行此操作,因此我有了使用正则表达式以及搜索和替换功能的想法。
例如:
int var; //Explanation variable
成:
int var; /**< @brief Explanation variable */
作为奖励,我也不想删除我想要的代码。
我尝试了不同的东西,如
查找:.+;*// .+
(找到相关行)
替换:.+;*/**< @brief .+ */
问题是,它没有插入原始文本,它将正则表达式作为纯文本插入,并删除代码打算。
有没有办法正确吗?我已经阅读了很多不同的帖子,但我无法让它发挥作用。
答案 0 :(得分:1)
答案 1 :(得分:1)
您需要使用capturing group和backreferences:
查找内容:(.+;\s*)//\s*([^\r\n]+)
替换为:$1/**< @brief $2 */
请参阅regex demo。
<强>详情:
(.+;\s*)
- 第1组(使用替换模式中$1
编号的反向引用访问其值):除了换行符之外的任何一个或多个字符;
,然后是0 + whitespaces //
- 双/
\s*
- 0+ whitespaces ([^\r\n]+)
- 第2组(使用替换模式中$2
编号的反向引用访问其值):除换行符(\n
)和回车符之外的任何1 +字符({ {1}})字符(因为\r
与.NET正则表达式中的CR(.
)匹配)。答案 2 :(得分:0)
我稍微修改了@WiktorStribizew的解决方案,使其更加舒适:
查找:(.+;[^\r\n]\s*)//\s*([^\r\n]+)
我在前面插入[^\r\n]
,以避免一些特殊情况,例如:
int var;
//Comment for the next function
int function ()