ReGex newbie here。
我需要使用RegEx从PHP文件中删除两种不同的样式注释。
我发现这个表达式在BBEdit文本编辑器中运行:
\/\*[\s\S]*?\*\/
并删除第一种风格的评论,如下所示:
/** This comment gets removed with my regex */
但它没有删除这些风格的评论:
// ** This comment has the double leadng-trailng slashes ** //
我不知道为什么两种不同类型的评论混合在一起,只有少数//
评论,但我需要将它们全部删除。
在搜索中添加另一个斜杠,即
\/\\*[\s\S]*?\*\/
使表达式变得贪婪,并删除未注释的代码中的单斜杠。工作表达式显然需要比以下更复杂:)
答案 0 :(得分:5)
PHP有一个内置函数:
php_strip_whitespace($filename);
答案 1 :(得分:2)
您可以使用此正则表达式:
\/\*.*?\*\/|\/\/.*?\n
<强> Working demo 强>
正如 Hwnd 在此答案中指出的那样,如果您将分隔符更改为~
,则可以使用已清理的正则表达式:
/\*.*?\*/|//.*?\n
答案 2 :(得分:1)