TrimEnd()
работает немного иначе, чем вы могли бы ожидать:
'1.8.0_191-b12'.TrimEnd('-b12')
приводит к: 1.8.0_19
и так:
'1.8.0_191-b12'.TrimEnd('1-b2')
Причина в том, что TrimEnd()
удаляет завершающий набор символов, а не подстроку.Таким образом, .TrimEnd('-b12')
означает: удалить все вхождения любого символа набора '-b12' из конца строки.И это включает в себя последние '1'
перед '-'
.
Лучшее решение в вашем случае будет -replace
:
'java full version "1.8.0_191-b12"' -replace 'java full version "(.+)-b\d+"','$1'