Я извлекаю номер версии из четырех частей из имени файла и конвертирую его в версию, совместимую с SemVer.
- Имя файла:
MyApp v2020.8.3.1.exe
- SemVer:
2020.8.3-r1
Мне удалось это сделать, используя два шага:
sVersion = Regex.Match("MyApp v2020.8.3.1.exe", "[A-Za-z ]|\.[A-Za-z]").Value
oSemver = New Regex("\.(?=[^\.]+$)")
sSemVer = oSemver.Replace(sVersion, "-r")
Это дает желаемую версию, совместимую с SemVer.
Однако для ради краткости, я хотел бы объединить эти два шага в одну операцию.
Я пробовал несколько вариантов в паре вопросов и ответов, которые я нашел:
... но мне не очень повезло.
Например:
([A-Za-z ]|\.[A-Za-z])|(\.(?=[^\.]+$))
заменено на $2
дает только номер версии из четырех частей 2020.8.3.1
.
Возможно ли это, учитывая ограничения, с которыми я работаю ?
- EDIT -
Мне нужен только номер версии, совместимый с SemVer, а не новое имя файла. Другими словами, мне нужно удалить все посторонние символы (в данном случае MyApp v
и .exe
) и заменить последний .
в четырехчастном номере версии на -r
.