有没有办法使用Notepad ++删除文件中的所有注释?

Cos*_*Cos 20 comments notepad++

Notepad ++显然可以识别所有注释.有没有办法简单地删除所有?

编辑: Stat-R的书签方法有很大帮助,不仅可以删除注释,还可以有条件地删除行.

Sta*_*t-R 32

对于常规文件,首先您需要知道正在编写该文件的语言的注释运算符.例如,在java脚本中,注释运算符为//.对于以下代码......

在此输入图像描述

在NP ++中,您需要

标记包含'//'的行.确保已启用书签选项.

在此输入图像描述

然后,从NP ++菜单中选择搜索>书签>删除书签行

在此输入图像描述


编辑:@Chris Mirno的建议 之后的另一个解决方案如下:使用正则表达式.见下图.这是自我解释的 在此输入图像描述

要更好地理解它,请参考这些

  • 如果/*新行*/和代码//注释存在于同一行中,该怎么办? (3认同)
  • @IvanWang首先删除/**/然后// (3认同)

Sen*_*enG 18

在此输入图像描述

在"查找和替换"对话框中,输入以下正则表达式并调整搜索选项,如图所示.

/\*.*?\*/
Run Code Online (Sandbox Code Playgroud)

替换为:(空)

选择模式:正则表达式AND.(点)匹配换行符

这应该删除跨行的所有C样式注释.

  • 我的错!我忘了提及.(点)匹配换行选项也应该被选中.编辑答案来纠正这个问题.请注意,最近在Notepad ++中引入了对正则表达式的多行支持,因此请确保安装了最新版本 (2认同)

Chr*_*rno 9

使用Stat-R解决方案向所有人发出警告:
如果格式如下,此方法将删除代码行:

echo "hello"; //This comment will be detected
Run Code Online (Sandbox Code Playgroud)

按照他的方法,将删除行.因此,在执行此方法之前,请务必仔细检查并做出这些注释.


Jam*_*mil 6

Star-R和Chris Mirno的回答也很正确.

但对于线评论:

//.*?(?=\r?$)

说明:

// 将是起始位置

.*? 将是任何角色

(?=\r?$) 将搜索到行尾(因为它在行注释中是必需的)

注意: 但仍然检查每一行,因为例如,如果您的代码包含soap格式

//www.w3.org/2001/XMLSchema-instance\x2......");
Run Code Online (Sandbox Code Playgroud)

它会捕获这条线,因为它的起点是//并且它到了行的末尾所以要注意这个:)

  • 至少对我来说这是最好的答案,然而,它仍然有一些缺陷,比如`url:http:// some-link /`.要解决这个问题,只需使用:`^ //.*?(?=\r?$)`正则表达式.这将确保只标记真正的注释行. (2认同)