正则表达式取代特殊评论

时间:2016-01-21 08:24:44

标签: regex replace

几个月前,我的一位同事离开了。他曾经用这种方式评论他的所有代码:

//----------------------------
// COMMENT
//----------------------------

private void func()...

因此每个评论最多使用1行,而不是使用1行(包括断行),这让我发疯。我正在尝试创建一个正则表达式,我可以安全地删除此注释并替换它。上面的代码应该是这样的:

// COMMENT
private void func()...

我想要删除'// ----------------------------'中的每一个,但它留下了很多空行以及注释和要描述的实际行之间的断行。任何帮助将不胜感激。

修改

注意一个: 我们的项目是用Visual Studio编写的

注意二:有些评论可能包含多行注释,例如:

//----------------------------
// LINE 1 COMMENT
// LINE 2 COMMENT
//----------------------------

2 个答案:

答案 0 :(得分:3)

此表达式与您的案例和任意3行注释相匹配,其中第一行和最后一行注释-

((\s|\t)*\/{2,})(.*[-]+)(\r?\n)((\1(.*)\4?)+)\4\1\3\4?

Try it here

然后你可以用以下代码替换它:

\5 (or $5)

编辑用于多行评论。

答案 1 :(得分:1)

这是一个正则表达式,您可以用它去除多余的(装饰性)注释行,并将这些庞大的注释转换为单行注释。

它还支持使用此样式的缩进和多行注释:

(( |\t)*?\r\n)?( |\t)*?//-+(\r\n( |\t)*?// .+)+\r\n( |\t)*?//-+\r\n

<强>查找

\4

替换为:

\4

(如果替换失败,请将$4替换为import requests url = 'http://www.google.com/search' my_headers = { 'User-agent' : 'Mozilla/11.0' } payload = { 'q' : 'pizza', 'start' : '0' } r = requests.get( url, params = payload, headers = my_headers )

祝你好运!