RegEx删除/ ** * /和// ** ** // php评论

时间:2014-09-01 17:28:16

标签: php regex comments

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]*?\*\/

使表达式变得贪婪,并删除未注释的代码中的单斜杠。工作表达式显然需要比以下更复杂:)

3 个答案:

答案 0 :(得分:5)

PHP有一个内置函数:

php_strip_whitespace($filename);

答案 1 :(得分:2)

您可以使用此正则表达式:

\/\*.*?\*\/|\/\/.*?\n

<强> Working demo

enter image description here

正如 Hwnd 在此答案中指出的那样,如果您将分隔符更改为~,则可以使用已清理的正则表达式:

/\*.*?\*/|//.*?\n

答案 2 :(得分:1)

~//?\s*\*[\s\S]*?\*\s*//?~

这很有效。只为你的答案添加了另一个\和太空食客。

参见演示。

http://regex101.com/r/lK9zP6/6