2013-02-13 26 views
0

在建的Java(所以我不能使用常規的解析器),我想分析的幾個源程序代碼之上的語言文件的摘錄如下信息:正則表達式找到公共成員

  • 名和延伸/實現公共(內)類的一部分
  • 公共方法聲明

因此,對於給定的文件

public class A extends B { 

    private int foo 
    public int getFoo() { 
    ... 
    } 

    private class Inner1 { 

    } 

    public class Inner2 { 

    } 
} 

我想獲得一個單個或幾個正則表達式:

public class A extends B 
public int getFoo() 
public class Inner2 

回答

2

讓我知道如果這是不夠的相當複雜,但它基本上是尋找「公共」後面有一個空格,然後任何是不是一個大括號:

public\s[^{]+ 

輸出如下:

enter image description here

+0

非常好,方便,西蒙!如何/我可以使用正則表達式組從匹配中提取某些部分,如修飾符,類名稱,extends/implments關鍵字和輔助類。有沒有辦法做到這一點? – 2013-02-14 08:29:18

+0

因爲我最初的問題並不那麼具體,Simon完美地回答了這個問題,所以我在這裏創建了一個新問題:http://stackoverflow.com/questions/14870742/regexp-to-match-members-declaration-of-java-source-files – 2013-02-14 08:38:55

0

你會想與任何amou啓動線空白的NT,其次是public,其次是一些空格,然後是文字字符:

^\s*public\s+\w