В настоящее время я пытаюсь создать регулярное выражение, которое будет соответствовать каждый раз, когда есть квалифицированное переменное использование
Для примера:
Regex найти квалифицированную Используй переменную
int foo = foofoo.bar;
возвращения foofoo.bar
foo.method(foobar.bar);
вернет foobar.bar
Мой текущий подход заключается в использовании это регулярное выражение
[\w]*[.][\w]*<(?!\()
Где она соответствует имя класса, период, общественность переменная, наконец, указывает, что не следует кронштейном (чтобы отличать его от вызовов метода) с
В настоящий момент часть проверки конечного кронштейна, похоже, не работает, и будет признательна за любую помощь!
не уверен относительно аромата java regex, но <перед тем, как взгляд выглядит странным. Кроме того, вы можете просто отрицать класс символов для скобок, '\ w + \. \ w + [^ (]' будет моим подходом – DesertEagle
Вы уверены, что это хороший подход. Что делать, если вы вынуждены использовать полностью квалифицированные имена ? .. – TheLostMind
@DesertEagle кажется на ходу. Но я бы также принял во внимание возможность добавления белого пространства в разные моменты - '\ w + \ s * \. \ S * \ w + \ s * [^ (]'. В противном случае 'foo.method (foobar.bar);' возвратит оба 'foo.method' ** и **' foobar.bar'. – ClasG