0

我试图通过删除所有单行和多行注释来找到一种方法来缩小我的 PHP/JavaScript 代码。目前我有单行删除工作,但我不知道如何删除我的多行注释。我尝试了以下正则表达式:

\/\*[^\*\/]*\*\/
\/\*[^.\/]*\*\/

还有许多其他人。我用来查找单行和多行失败的当前表达式是(\/\/[^\n]*\n|\/\*[^\*\/]*\*\/)

表达要求

  • 表达式必须在 Perl 中
  • 表达式不能停在//多行注释内(即http://url.com
  • 表达式必须能够找到单行和多行注释
  • 该表达式可用于查找任何多行 PHP/JavaScript 注释的开头和结尾。

您可以在此处找到我需要的代码示例

先感谢您。

4

3 回答 3

3
\/\*[\s\S]*?\*\/
  • \/\*匹配/*
  • [\s\S]*?匹配任何东西(非贪婪)
  • 直到\*\/;匹配*/
于 2013-08-20T17:54:14.510 回答
0

http://www.perl.com/pub/2003/06/06/regexps.html

你不会让它单独与一个点一起工作。这不包括换行符。

您将需要使用 /s 选项。

于 2013-08-20T17:53:01.280 回答
0

有一个在线指南提供了以下 perl 正则表达式。

(?:\/\*(?:[^*]|(?:\*+[^*\/]))*\*+\/)|(?:\/\/.*)

它似乎用你的测试代码给出了正确的输出。但是你可能会遇到像第 10 行这样的文本的问题,其中在其他元素中有注释。

于 2013-08-20T19:02:09.327 回答