Я думаю, что вам не хватает информации по этому вопросу, у вас есть шаблон для сравнения, т.е. @ ('- ABC-A', - abc-a), или вы проверяете, например, последние 2 '-' и содержимое между ними.
Я расширю на втором:
Pipeline:
'paul.douglas-steve-svr-z' | % {$_.Substring($_.Substring(0,$_.LastIndexOf('-')).lastIndexOf('-'),$_.Length-($_.Substring(0,$_.LastIndexOf('-')).lastIndexOf('-')))}
Как вы можете видеть, такая кучка может быть расширена до максимально возможного количества '-'.
Лучше (ИМО):
$text='paul.douglas-steve-svr-z'
if($text.Split('-').Count -ge 3){
$lastSymbolPosition = $text.LastIndexOf('-')
$secondLastSymbilPosition = $text.Substring(0,$lastSymbolPosition).LastIndexOf('-')
$prefix=$text.Substring($secondLastSymbilPosition,$text.Length-$secondLastSymbilPosition)
$prefix
}else{
'Out of the solution scope'
}
Хотя я не могу дать вам окончательный ответ, потому что не знаю цели этой обработки текста.
Надеюсь, это поможет.