2013-04-26 38 views
1

我一直在嘗試使用正則表達式匹配HTML文件中的註釋,並通過C#.net(VS2010)解決方案完全刪除它們。 這裏是怎麼樣的樣子,正則表達式匹配多行註釋

/*This flexibility is not available with most other programming languages. E.g. in Java, 
the position for \G is remembered by the Matcher object. 
The Matcher is strictly associated with a single regular expression and a single subject 
string.*/ 

我曾嘗試/\*.+\*/

str = File.ReadAllText("Test.html");<br /> 
str = Regex.Replace(str, "/\*.+\*/", "", RegexOptions.Singleline);<br /> 
File.WriteAllText("Test.html", str); 

但他們不工作了我。我已經在論壇中回答了一些問題,但仍然沒有運氣。

我想感謝所有幫助:)

謝謝...

+0

您是否在搜索HTML中的c#註釋?因爲那麼你需要選擇'/ *'和'* /'之間的所有東西? – Izzy 2013-04-26 12:11:49

+0

沒有Izzy,它是在HTML文件中的評論:) – Mayura 2013-04-26 14:11:12

+1

不要HTML評論看起來像這樣<! - comment - >? :D – 2013-04-26 14:30:22

回答

1

你必須添加在你的字符串字面逃跑了一層額外的:

str = Regex.Replace(str, "/\*.+\*/", "", RegexOptions.Singleline); 

產生/*.+*/爲圖案因爲\是c#字符串文字的轉義metacharcter。你需要指定使用follwing變種之一,它(@防止轉義序列的處理,\\應該是不言自明的...):

str = Regex.Replace(str, @"/\*.+\*/", "", RegexOptions.Singleline); 

str = Regex.Replace(str, "/\\*.+\\*/", "", RegexOptions.Singleline); 
+0

謝謝Collapsar :)完美的作品。再次感謝您解釋它的全部內容。 – Mayura 2013-04-26 14:09:04

0

爲了找到/*comments*/,嘗試這個正則表達式:

/\/\*.+?\*\//ims 
+0

它返回在VS的錯誤:無法識別的轉義序列 順便說一句感謝Raheel :) – Mayura 2013-04-26 14:10:18

+0

歡迎:d你嘗試'@'防止轉義序列正在處理自己.. – 2013-04-26 14:13:37

+0

哦...只是嘗試使用@但還是留下?在文件隊友中的評論。 – Mayura 2013-04-26 14:24:50