регулярное выражение для соответствия определению класса Java / интерфейса / перечисления / аннотации - PullRequest
0 голосов
/ 14 января 2011

Я создал регулярное выражение ниже, чтобы сделать это. Но это также соответствует комментариям как //This class blabla...

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

Не могли бы вы помочь мне получить регулярное выражение, соответствующее только определению java-класса / интерфейса / и т. Д.?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 04 февраля 2011

Regex не достаточно мощный, чтобы надежно сделать это. Вам нужен парсер, который действительно понимает Java.

Вы должны использовать один из них:

0 голосов
/ 04 февраля 2011

Просто измените \ S *. \ S на ^ \ s *, чтобы добиться цели. Тогда вы будете сопоставлять только начало строки, любое количество пробелов, а затем ключевое слово. Конечно, это не соответствует строке типа "/ * comment * / class MyClass", но в любом случае это будет довольно необычная строка.

^ \ S * (класс | интерфейс | перечисление | @interface). \ S + *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...