PHP: RegEx для анализа конкретной функции из класса JAVA

Я должен проанализировать классы JAVA с PHP. Все java-классы реализуют мой интерфейс, поэтому в классе всегда есть соответствующая мне функция. Это выглядит как:

public void init(Something driver, Parameters params) { ... }

Я придумал следующее регулярное выражение:

/public\s+void\s+init\s*\(\s*Something\s+(\w+)\s*,\s*Parameters\s+(\w+)\s*\)\s*\{([^\}]+)\}\s*/

Он работает нормально, за исключением ситуаций, когда где-то внутри тела моей функции есть символ «}». Есть ли способ справиться с этими ситуациями?

0

Решение

Попробуйте следующее регулярное выражение,

public\s+void\s+init\s*\(\s*Something\s+(\w+)\s*,\s*Parameters\s+(\w+)\s*\)\s*\{((?:[^{}]*(?:{[^{}]*})?)+[^{}]*)\}\s*

DEMO

0

Другие решения

Других решений пока нет …