【发布时间】:2015-05-01 14:44:23
【问题描述】:
代码:
$buffer = '
//Test
var url = \'http://test.com\';
var x = \'foo\'; // test
var myregex = \'/(*)?//\'';
echo preg_replace("/(?:\/\/.*)/", "", $buffer);
结果:
var url = 'http://
var x = 'foo';
var myregex = '/(*)?`
预期结果:
var url = 'http://test.com';
var x = 'foo';
var myregex = '/(*)?//'
是缩小 JavaScript 的第一步,但我没有看到解决方案。
有什么建议吗?
【问题讨论】:
-
是缩小 JavaScript 的第一步:你知道你在重新发明轮子吗?
-
看起来您的正则表达式正在执行您指定的操作:从每一行中删除
//及其后面的所有内容。缩小不仅仅是删除 cmets(例如,还减少了私有标识符的大小)。为此,您需要解析语言。但既然这是一个已解决的问题,为什么要这样做呢? -
我可以完全关闭,但使用 ?使 .* 变得懒惰,而不是贪婪,因此它不会匹配任何内容,而不是所有内容。
-
@kainaw
.*?会很懒惰,代码中的(?: ... .*)只是一个非存储的子模式。 -
我想你的意思是:
uglifyjs --compress --mangle -- input.js
标签: javascript php regex minify