2009-10-14 71 views
3

我想通過正則表達式在C#中刪除javascript評論,並已成爲卡住。我想刪除任何出現的雙斜槓//樣式註釋。正則表達式刪除JavaScript的雙斜槓(/)風格的評論

我目前使用的正則表達式是(?<!:)//[^\r\n]*,它會捕獲所有註釋並阻止匹配http://。然而,負回顧後發懶,當然咬了我回到了以下測試案例:

var XSLPath = "//" + Node; 

所以我在尋找一個正則表達式,將進行回顧後,看偶數雙引號( ")發生在比賽之前。我不確定這是否可能。或者也許有更好的方法來做到這一點?

+0

始終使用[Regex Coach](http://weitz.de/regex-coach/) – bobobobo 2010-12-23 21:13:28

回答

2

(更新基於評論)

它看起來像這樣工作得很好:

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

看來,test cases in Regex Hero表明它會,我認爲它應該的方式(符合評論幾乎)。

例如,它會完全忽略這一行:

var XSLPath = "//" + Node; 

但它是足夠聰明的評論在此行的末尾匹配:

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

但是,這還不夠聰明在評論前知道如何處理3個或更多的引號。我不完全確定如何解決這個問題,而不用硬編碼。你需要一些方法來允許偶數個引號。

+0

對'var s =''http://''www''.website.com;' – 2009-10-14 22:27:25

+1

失敗但是,這很容易通過'(?<![「:])//.*(?!」)$' – 2009-10-14 22:28:06

+1

更改失敗: 「text // more text」 – Joel 2009-10-14 22:30:56