Я пока не могу оставлять комментарии так:
Имейте в виду, что ответ шахавата может привести к небольшим несоответствиям, он будет соответствовать любой версии '123abc' в файле, поэтому, если это произойдет, у вас есть
[110 ]
это займет первое (если вы берете только первое найденное совпадение). Чтобы противостоять этому в некоторой части, вы можете добавить ^ \ s * в начале регулярного выражения следующим образом:
^\s*(version)\s*([A-Z0-9.'/-]+)
^ соответствует началу строки
\ s соответствует любому символу пробела [118 ]
* - жадное сопоставление, поэтому в этом случае оно будет продолжать сопоставлять все пробельные символы
, поэтому вы можете иметь столько пробелов между версией и номером версии, а также между началом строки и строкой версии в случае некоторых потерянные пробелы или аналогичные имена, поставленные ранее.
Также, используя gradle API ( https://docs.gradle.org/current/javadoc/org/gradle/api/Project.html ), вы можете создать простой gradle плагин gradle, который может сообщать о версии через
project.version
, которые вы можете подать заявку на каждый проект, а затем запустить его извне.
Нет никакого способа сделать это. Итератор должен "выполнить итерации" через список. Необходимо отсортировать базовый список для достижения необходимого поведения.
Между прочим, более полная ссылка на SPL здесь: http://www.php.net/~helly/php/ext/spl/