2017-10-19 12 views
0

私はこの質問のバリエーションが何度も尋ねられていることを知っていますが、私が見つけた他の解決策のどれも私のために働いていません。一行コメントを削除するPHPの正規表現

私は、正規表現を試して、いくつかのJavaScriptで表示される行コメントを削除しようとしています。

理想的には、2つのスラッシュが実際のスクリプトに含まれていないことを確認する方法があります。

$("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 

私はこれを持っている:

​​...しかし、それはそれは単一行と一緒にURLのを取り除きので、私のコードを壊す(エレガント)

+2

これは、文脈依存パターンを検索しているため、正規表現では苦労します。 E.G 'var a = '// some string''は削除すべきではありませんが、' var a ='いくつかの文字列 '// comment here'を削除してください。 – bassxzero

+0

[ここ](https://stackoverflow.com/questions/5419154/how-to-remove-single-line-comments-in-php)で提案されているソリューションが動作するようです! – tjadli

+0

@bassxzero正規表現が '//'の後にセミコロンが存在するかどうかを単にチェックして無視すると思っていました。私はちょうどそれを書く方法を知らない。 – JROB

答えて

0

正規表現をするのに十分な複雑ではありませんコメントすべての場合にこれを行いますが、いくつかの前提を使用することができます。例えば://のみa)のコメントや文字列のb)の一部とすることができますので、次の操作を行うことができる必要があります:

\/\/[^;)]*$ 

このコメントの後に任意の;または)がないかもしれないということを意味します。これはあなたのコメントにそれらを使用しない場合にのみ有効です。もちろん、あなたのニーズに合わせて、おそらく'"のような文字を使用することができます。

関連する問題