我有一个PHP文件在编辑器中打开,如Geany/notepad++,其中有两种类型的注释单行和块注释
现在,由于块注释对文档很有用,我只想删除以//~
或#
开头的单行注释。其他以//
开头的注释如果不是从//
开始的,则应保留。
我如何用正则表达式做到这一点?我试了下面这个,但是我被转义斜杠卡住了,还包括#
。
^[#][/]{2}[~].*
正则表达式^[#][/]{2}[~].*
的问题是它匹配以#//~
开头的行。
正则表达式与
相同^#//~.*
使用正则表达式
^s*(//|#).*
描述:
单行注释可以从行首开始,也可以在几个空格(缩进)之后开始。
-
^
:起始行 -
s*
:任意数量的空格 -
(//|#)
:匹配//
或#
字符。|
在正则表达式中是OR。 -
.*
:匹配任何字符(换行符除外)任意次数
注意PHP注释在//
之后不包含波浪~
。即使~
出现在//
之后,因为上面的regex检查//
而不关心它之后的字符,带有//~
的注释也将被匹配。