2013-10-31 67 views
0

我目前正在嘗試在Checkstyle中創建自己的檢查。 它應該在課堂上爲註釋代碼發出警告。與Java語法匹配的模式(Checkstyle)

現在,就評論意見的認可而言,我明白了這一切,但現在我面臨着如何使其識別Java代碼的問題。

是否有任何已提供這些功能的集合?只是檢查某些關鍵字,如修飾符,類型,範圍等,在某些情況下會過於模糊。

TL;博士:尋找一種方式來找出一個字符串是否是java代碼或沒有(模式匹配)

回答

0

這將是非常難以確定是否行是Java代碼或不作爲線可以少至單個}。也就是說,如果你想檢查一個FILE是否是java,那麼對你來說有一些很好的Regex選項,主要是因爲你可以查看某一行的上下文。 即使你使用那些你可以製作一個特定的文件,它會被檢測到,如果它是Java,但實際上並不是這樣。也就是說,如果不是所有的「普通」文件,它都可以工作。

如果正則表達式是你正在尋找的,你可能想在StackOverflow上尋找類似的威脅,因爲應該有一些(我前一段時間使用過一個)。然而,如果你真的想在Checkstyle中做到這一點,你可能會走運...

0

一個很好的啓發式方法來確定大塊評論代碼是檢查前面的空格。一個「有效」的評論通常與實際的代碼縮進:

public class A { 

    public void a() { 
     // valid comment 
     ... 
    } 

} 

儘管已經評論與CTRL-7的碼塊將直接與//字符開始:

public class A { 

// public void a() { 
//  // valid comment 
//  ... 
// } 

} 

因此,你的正則表達式看起來像這樣

^//.*