关于c#:Regex删除javascript双斜杠(//)样式注释

Regex to remove javascript double slash (//) style comments

我试图通过C#中的正则表达式删除javascript注释并且已经卡住了。 我想删除任何出现的双斜杠//样式注释。

我当前的正则表达式是(?,它将捕获所有注释并阻止http://的匹配。 然而,负面的背后观察是懒惰的,当然还有点让我回到以下测试案例中:

1
var XSLPath ="//" + Node;

所以我正在寻找一个正则表达式,它将执行一个lookbehind,看看在匹配之前是否出现偶数个双引号(")。 我不确定这是否可行。 或者也许有更好的方法来做到这一点?


(根据评论更新)

它看起来很好用:

1
(?<=".*".*)//.*$|(?<!".*)//.*$

似乎Regex Hero中的测试用例表明它会以我认为应该(几乎)的方式匹配评论。

例如,它将完全忽略这一行:

1
var XSLPath ="//" + Node;

但它足够聪明,可以匹配这一行末尾的评论:

1
var XSLPath ="//"; // stuff to remove

但是,在评论之前知道如何处理3个或更多引号并不够聪明。 我不完全确定如何在不对其进行硬编码的情况下解决该问题。 你需要一些方法来允许偶数引号。