正则表达式删除JavaScript的双斜线(/)风格的评论

我试图通过C#中的正则表达式去除javascript评论,并且陷入了僵局。 我想删除任何出现的双斜杠//样式注释。

我当前的正则表达式是(?<!:)//[^rn]* ,它将捕获所有注释并阻止匹配http:// 。 然而,负面的负面看法是懒惰的,当然在下面的测试案例中让我回想起来:

var XSLPath = "//" + Node;

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


(根据评论更新)

它看起来像这样工作得很好:

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

看来正则表达式英雄中的测试用例表明,它会按我认为应该(几乎)的方式匹配评论。

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

var XSLPath = "//" + Node;

但它足够聪明,可以匹配该行末尾的注释:

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

然而,在评论之前知道如何处理3个或更多引号是不够智能的。 我不完全确定如何解决这个问题,而不用硬编码。 你需要一些方法来允许偶数个引号。

链接地址: http://www.djcxy.com/p/20065.html

上一篇: Regex to remove javascript double slash (//) style comments

下一篇: What are the differences between JSON and JavaScript object?