我想使用Notepad ++搜索包含一些javascript的javascript文件或html文件,并用多行样式注释替换所有单行注释。
例如// some comment goes here
替换为/* some comment goes here */
使用Notepad ++搜索并替换为使用(//.*)(\r\n)
选择的正则表达式进行搜索,\/*\1\*/\r\n
有点工作。
问题:
// some comment goes here
在它之前。我可以通过首先执行全局非正则表达式搜索替换来替换所有出现的//
space //
// some comment goes here
替换为/*// some comment goes here*/
,即两个正斜杠未被替换。之后我可以通过执行全局非正则表达式搜索来解决此问题,以/*//
替换/*
的所有实例。http://msdn.microsoft.com/
,我不希望将其替换为http:/*msdn.microsoft.com/*/
我可以解决这个问题事先将所有://
替换为:/ZZZ/
,其中ZZZ是一种转义方法,然后将:/ZZZ/
替换为://
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
之类的问题会出现问题我想我必须手动照看这些问题。这不是一个Notepad ++问题。我确信使用常规搜索和替换系统会遇到同样的困难。
感谢所有建议。
感谢您抽出宝贵时间阅读本文
答案 0 :(得分:3)
快捷方式
使用此正则表达式:
(?<=\s)//([^\n\r]*)
替换为:
/\*$1\*/
解释方式
1 - 双斜杠 // 不会替换,因为你在那个捕获组中有它们。因此,您将再次捕获并替换它们。
2 - 大部分时间在评论开始之前只有空格或换行符(\ n)。我把它作为一个外观来确保。通过这种方式, URL 和 DOCTYPE 将不会被触及。
*我不确认这种搜索和替换方法,但它可能适用于大多数情况。
注意设置。您应该将光标放在文件内容的最开头。
然后执行全部替换
答案 1 :(得分:1)
这不是正则表达式的工作,而是使用解析器。例如,请查看:Esprima。