2011-11-08 79 views
1

我有一堆netbeans上的評論文件,我使用netbeans來替換匹配某個正則表達式模式的字符串,我迷失了它。下面的評論有以下模式。正則表達式來匹配代碼註釋

import static java.util.Arrays.*; 
/* 178 */  int h = 8; 
/* 179 */  int d = 8; 
/* 180 */  int j = 8; 
/* 181 */  int a = 6; 
/*  */ 

我嘗試使用[\\\*\d+\*\/]它消除了意見和裏面的數字,但它也去掉了數字的變量賦值後,即它int h = 8;刪除8,並刪除在進口報關的*

請幫助,告訴我我做錯了什麼,我只需要刪除它的數字和空白的意見。謝謝。

它使用相同的正則表達式模式作爲PHP的preg_replace();

回答

1

取出支架。他們創建一個字符類,這意味着任何*/,\,+或數字被刪除。

+0

對不起,但我不明白。 -_- – Mob

+0

圍繞整個正則表達式的括號。他們不應該在那裏。在任何正則表達式指南中查看括號所做的事情。試試這個:http://en.wikipedia.org/wiki/Regular_expression「字符類」 - 方括號內的字符列表 - 匹配裏面的任何一個字符,在你的情況下是'*','/ '''''''''''''','\ d'。由於所有這些字符都匹配,它們全部被刪除。 – Dan

+0

不是那些分隔符?我認爲他們是必要的?見http://codepad.org/6XWgE0LR – Mob

1

我認爲你應該使用下面的正則表達式:

/\/\*\s*\d*\s*\*\// 

(這是\ d *,而不是\ d +不僅是因爲我注意到你的榜樣空白評論)

其實,如果我是使用了preg_replace,那麼更高的可讀性,我就已經使用了以下內容:

$str = preg_replace('%/\*\s*\d*\s*\*/%U', '', $str); 

注意,爲的preg_replace()我已經添加在U改性劑,即關閉了「貪婪」。我不知道如何在Netbeans中做到這一點。