Предполагая, что все ваши пути являются абсолютными, вы можете использовать предварительное утверждение в своем регулярном выражении:
def text = "/path/to/file1.java /path/to/file2.sql /path/to/file3 with space.xml"
println text.split(" (?=/)")
И это выдает [/path/to/file1.java, /path/to/file2.sql, /path/to/file3 with space.xml]
Taht регулярное выражение разделяет строку на пробелсопровождаемый /
РЕДАКТИРОВАТЬ: Для обновленного примера можно посмотреть на расширения в именах файлов, хотя вам необходимо тщательно рассмотреть, что ваш ввод можетinclude:
def text = "randomFolderNameA/path/to/file1.java randomFolderNameB/path/to/file2.sql randomFolderNameC/path/to/file3 with space.xml file4 with space.sql"
println text.split("(?<=\\.[a-zA-Z0-9]{1,4}) ")
Выводит следующее, как и ожидалось:
[randomFolderNameA/path/to/file1.java,
randomFolderNameB/path/to/file2.sql,
randomFolderNameC/path/to/file3 with space.xml,
file4 with space.sql]
Но, как отмечено выше, вы должны быть уверены, что пути содержат только имена файлов, а регулярное выражение расширения допустимо(Я использовал «точку, за которой следуют от 1 до 4 буквенно-цифровых символов»)