正则表达式 – 使用sed从javascript文件中删除所有console.log

前端之家收集整理的这篇文章主要介绍了正则表达式 – 使用sed从javascript文件中删除所有console.log前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图从我的JS文件删除所有我的console.log,console.dir等,然后用YUI(在osx上)缩小它.

我为控制台语句获得的正则表达式如下所示:

console.(log|debug|info|warn|error|assert|dir|dirxml|trace|group|groupEnd|time|timeEnd|profile|profileEnd|count)\((.*)\);?

如果我用RegExr测试它就可以了.
但它不适用于sed.

为了让这个工作,我需要改变什么?

sed 's/___???___//g' <$RESULT >$RESULT_STRIPPED

更新

得到第一个答案后我试过了

sed 's/console.log(.*)\;//g' <test.js >result.js

这是有效的,但是当我添加OR时

sed 's/console.\(log\|dir\)(.*)\;//g' <test.js >result.js

它不会取代“日志”:

解决方法

你的原始表达看起来很好.对于扩展正则表达式,您只需将-E标志传递给sed:

sed -E 's/console.(log|debug|info|...|count)\((.*)\);?//g'

在man re_format中解释了这些类型的正则表达式之间的区别.说实话,我从来没有读过那个页面,而只是在事情没有按预期工作时简单地使用-E. =)

猜你在找的正则表达式相关文章