PHP正则表达式删除单行注释

时间:2017-10-19 14:24:19

标签: php

我知道这个问题的变化已被多次提出,但我发现的其他解决方案都没有对我有效。

我只想尝试使用正则表达式删除某些javascript中可能出现的任何单行注释。

理想情况下,它可以通过某种方式检查两个正斜杠是否是任何实际脚本的一部分。

$("a[href='#top']").click(function() { // This should be removed

$('html, body').animate({
    scrollTop:0
}, 'slow');

return false;

});

var SomeURL = 'http://www.google.com'; // This comment should be removed but the URL should not

我有这个:

$fileContents = preg_replace('/\/\/.*/', '', $fileContents);

...但这会破坏我的代码,因为它会删除网址以及单行注释

1 个答案:

答案 0 :(得分:0)

正则表达式并不复杂(优雅地)在所有情况下都这样做,但你可以使用一些假设。例如:由于//只能是a)注释或b)字符串的一部分,因此您应该能够执行以下操作:

\/\/[^;)]*$

这意味着评论后可能没有;)。但这仅适用于您未在评论中使用这些内容的情况。您当然可以使用'和/或"之类的任何字符来更好地满足您的需求。