如何在任何编辑器中通过 Regex 删除所有单行 PHP 注释行

How to delete all single-line PHP comment lines through Regex in any editor

我在 Geany/Notepad++ 这样的编辑器中打开了一个 PHP 文件,它有单行注释和块注释两种类型。

现在块注释对文档很有用,我只想删除以 //~# 开头的单行注释。其他以 // 开头的注释如果不是从 //.

开始的行,则应保留

如何使用正则表达式来做到这一点?我在下面尝试了这个,但我陷入了转义斜杠,还包括 #.

^[#][\/]{2}[~].*

正则表达式 ^[#][\/]{2}[~].* 的问题在于它匹配以 #//~.

开头的行

正则表达式与

相同
^#\/\/~.*

使用正则表达式

^\s*(\/\/|#).*

Demo

描述:

单行注释可以在行首或几个空格(缩进)之后开始。

  1. ^: 行首
  2. \s*:任意数量的空格
  3. (\/\/|#):匹配//#个字符。 | 在正则表达式中是或。
  4. .*:匹配任意字符(换行符除外)任意次数

请注意 PHP comments// 之后不包含波浪号 ~。即使 ~ 出现在 // 之后,因为上面的正则表达式检查 // 并且不关心它后面的字符,带有 //~ 的注释也会被匹配.