Скажем, я хочу сделать регулярное выражение, которое отделяет необязательный номер версии от имени файла, т. Е.
val regex(name, ver) = "file.jar" // name = file, ver = empty
val regex(name, ver) = "some-software.jar" // name = some-software, ver = empty
val regex(name, ver) = "software-1.0.jar" // name = software, ver = 1.0
val regex(name, ver) = "some-file-1.0.jar" // name = some-file, ver = 1.0
Как такое регулярное выражение написано на Scala / Java? В Perl я бы сделал что-то вроде:
(*). (- (\ d |.) *) ?. баночка
но Scala не поддерживает создание дополнительных групп в этом синтаксисе.