2011-03-11 43 views
1

如何使用Regex.Replace()從CSS中刪除註釋?使用正則表達式刪除css註釋

注 - 我無法使用C#中提到的正則表達式 - Regular expression to remove CSS comments

+4

你爲什麼不能使用它? –

+0

我懷疑這是因爲PHP使用Perl正則表達式。 –

+0

現在,這是一個模範的態度,提供您自己的重複關閉的鏈接。哦,順便提一下,你的問題應該是對這個問題答案的評論。 – Bobby

回答

5

這將是正常就夠了(假設cssLines是包含CSS文件的所有行字符串):

Regex.Replace(cssLines, @"/\*.+?\*/", string.Empty, RegexOptions.Singleline) 

請注意,Singleline選項將允許匹配多行註釋。

2

從鏈接的問題使用正則表達式,像這樣:

var rx = new Regex(@"(?<!"")\/\*.+?\*\/(?!"")"); 
1

不知Maxim的解決方案及其以下版本會更快。

"/\*[^*]*.*?\*/" 

正如討論所示,這也將消除字符串文字中的註釋。

+0

如果評論本身包含「*」字符,它將不匹配。 –

+1

但它也不能正常工作;-)它會檢測字符串中的註釋。有關示例,請參閱鏈接問題。 –

+1

@Daniel:給出這個要求,鏈接評論中的建議正則表達式也會錯誤地匹配'「之前/ *而不是註釋* /之後。使用正則表達式處理所有可能的情況可能會變得太複雜。 –