Оператор -match
находит только первое совпадение. -AllMatches
с Select-String
извлечет все совпадения на входе. Кроме того, [,$]
соответствует буквенным символам ,
или $
, $
не является метасимволом конца строки / строки.
Возможное решение может выглядеть как
Select-String 'x\.([^,]+)' -input $s -AllMatches | Foreach {$_.Matches} | Foreach-Object {$_.Groups[1].Value}
Шаблон - x\.([^,]+)
, он соответствует x.
и затем захватывает в группу 1 любой один или несколько символов, отличных от ,
.