2011-01-14 6 views
0

これを行うために正規表現を作成しました。しかし、それはまた//This class blabla...java class/interface/enum/annotationの定義と一致する正規表現

\\S*.*\\s*(class|interface|enum|@interface)\\s+.* 

のようなコメントは、あなたは私がJavaのクラス/インタフェース/など。定義だけにマッチする正規表現を出て役立つだろうと一致しますか?

ありがとうございました。

答えて

0

ちょっと変わって\ S *。\ sから^ \ s *に変えてください。その後、行の先頭、任意の数の空白、キーワードを照合します。もちろん、それは "/ * comment */class MyClass"のような行には一致しませんが、それはとにかく珍しいものになります。

^\ sの*(クラス|インターフェース|列挙| @interface)\は+ S *

0

正規表現は、確実にこれを行うのに十分強力ではありません。実際にJavaを理解するパーサーが必要です。

あなたはこれらのいずれかを使用する必要があります

Java Grammar
  • javaparser(Javaのソースコードのパーサ)
  • javacc(Javaコンパイラコンパイラ、上記の本に基づいていますjavaparser)