正则表达式替换特殊注释

标签 regex replace

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

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

private void func()...

所以每条评论,不是最多使用1行,而是使用4行(包括断行),这让我抓狂。我正在尝试创建一个 Regex,我可以安全地删除此评论并替换它。上面的代码应该是这样的:

// COMMENT
private void func()...

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

编辑

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

注意二:有些评论可能包含不止一行评论,例如:

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

最佳答案

此表达式匹配您的案例和任何 3 行注释,其中第一行和最后一行的尾随 -:

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

Try it here

然后您可以将其替换为:

\5 (or $5)

编辑:用于多行注释。

关于正则表达式替换特殊注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34918657/

相关文章:

r - 拆分数据表中不同长度的字符串

正则表达式:Scala 中的匹配和标记化

javascript - JavaScript test() 是否在正则表达式中保存状态?

javascript - 正则表达式检查输入是否只是整数 (int) ,并检查另一个是否只是带有 2 个小数位的数字

php - 搜索并替换 MySQL : nothing was replaced

javascript - 为什么 .replace() 不处理从 escodege.generate() 生成的大字符串?

c# - 替换字符串但仅适用于 c# 中的特定模式

MySQL 删除 %startcode%endcode% 处的文本

Java正则表达式模式查询

javascript - Jquery 用下一个和后一个链接替换 ​​Div