2009-10-28 45 views
0

是否有任何正則表達式專家可以幫助我清理以下源代碼?我會通過一些現有的代碼,我看到幾個實例類似以下內容:正則表達式以匹配代碼中的特定註釋

public enum Numbers 
{ 
    /// <summary> 
    /// One = 1, 
    /// </summary> 
    One = 1, 

    /// <summary> 
    /// Two = 2, 
    /// </summary> 
    Two = 2, 

    /// <summary> 
    /// Three = 3, 
    /// </summary> 
    Three = 3, 

    /// <summary> 
    /// Four = 4 but don't use this because it will break everything, 
    /// </summary> 
    Four = 4, 
} 

除非有人能告訴我,對於1-3的意見是必要的,我希望做一個查找/替換(刪除)所有對代碼沒有任何價值的評論。從瀏覽代碼我認爲可以安全地假設任何類似「/// word = number」的行都可以被替換。清理起來,我認爲它應該是這樣的:

public enum Numbers 
{ 
    One = 1, 
    Two = 2, 
    Three = 3, 

    /// <summary> 
    /// Four = 4 but don't use this because it will break everything, 
    /// </summary> 
    Four = 4, 
} 

您的幫助非常感謝!而通過幫助我,你真的幫助你自己。因爲誰知道,有一天你可能會保持這個非常的代碼!

回答

2

與VS2008 FindAndReplace我試過這個和工作;

查找內容:

/// \<summary\>.*\n.*\=:b:d[:b,]*\n.*\<\/summary\>\n 

替換爲:

(empty) 

用途:

正則表達式

+0

謝謝,你只是救了我成千上萬的不必要的擊鍵和鼠標亮點! – 2009-10-29 13:54:26

2

這裏是一個Perl腳本,將刪除這樣的評論:

my $text = join "", <>; 
$text =~ s{///\s+<summary>\s+///\s+\w+\s+=\s+\d+,\s+///\s+</summary>}{}g; 
print $text; 
+2

'\ s'已經包含'\ n',所以'[\ s \ n] +'可以寫成\ s +'。 – 2009-10-28 22:03:03

+0

感謝巴特,修改。 – tster 2009-10-28 22:05:11

+0

No problemo tster! – 2009-10-28 22:12:41

0

你工作在一個類Unix操作系統或有cygwin的?

我從來沒有做過用正則表達式匹配多,但有使用SED做一個鏈接...

http://www.ilfilosofo.com/blog/2008/04/26/sed-multi-line-search-and-replace/

我會閱讀並稍後編輯這個答案將它應用到您的問題。或者也許別人會。

+0

其實我正在使用Visual Studio,並且我將嘗試使用正則表達式來查找/替換並替換爲空字符串。 – 2009-10-28 22:09:27

相關問題