Help replacing characters based on how many times it appears

ok, i guess the easiest way to explain this is just explain what results i want. in the composer field, if there is a single "/", i want it converted to " & " (this I can do), but if there is more than one "/" i want to change them to ", " except the last one, which would be " & "

example 1:
Tom/John
Tom & John

example 2:
Tom/John/Larry/Bill
Tom, John, Larry & Bill

Probably DetlevD knows how to do this in one go ... I can only think of an action group that executes 2 replace actions:
the first is a "Replace with regular expression" and the format strings:
(.)/(.)
Replace with:
$1 & $2
(as it is "non-greedy" it only replaces the last slash)
and the second is an action of the type "Replace" (no regular expression)
with search string
/
and replace string
,_
(where the _ represents the blank)
The last action does nothing if there is nothing to replace.

For both examples ...

Begin Action Group Test2015#20150108.Itemlist.Replace.SlashToCommaOrAmpersand

Action #1
Actiontype 5: Format value
Field ______: COMPOSER
Formatstring: $ifgreater($sub($len(%COMPOSER%),$len($replace(%COMPOSER%,'/',))),0,$replace(%COMPOSER%,'/',', '),%COMPOSER%)

Action #2
Actiontype 5: Format value
Field ______: COMPOSER
Formatstring: $ifgreater($sub($len(%COMPOSER%),$len($replace(%COMPOSER%,', ',))),0,$left(%COMPOSER%,$sub($strrchr(%COMPOSER%,', '),1))' & '$cutLeft(%COMPOSER%,$add($strrchr(%COMPOSER%,', '),1)),%COMPOSER%)

End Action Group Test2015#20150108.Itemlist.Replace.SlashToCommaOrAmpersand (2 Actions)

... or ...

Begin Action Group Test2015#20150108.Itemlist.Replace.SlashToCommaAmpersand (1)

Action #1
Actiontype 5: Format value
Field ______: COMPOSER
Formatstring: $regexp($regexp(%COMPOSER%,'/',', '),'(.+), (.+)','$1 & $2')

End Action Group Test2015#20150108.Itemlist.Replace.SlashToCommaAmpersand (1) (1 Action)

DD.20150109.0907.CET