Используя регулярное выражение:
import re
old_s = 'Coated tablet + ALFUZOSIN HYDROCHLORIDE, Film-coated tablet + ALFUZOSIN HYDROCHLORIDE, Modified-release tablet + ALFUZOSIN HYDROCHLORIDE, Prolonged-release tablet + ALFUZOSIN HYDROCHLORIDE'
new_s = re.sub(r'\s\+.*?, | \+.*?$', ',', s)[:-1]
print(new_s)
>>> 'Coated tablet, Film-coated tablet, Modified-release tablet, Prolonged-release tablet'
В левой части канала \s
указывает пробел, \+.*?,
ищет все между +
и ,
, справасторона, вы переходите к конечному случаю, когда нет запятой, вместо этого используется $
.
[:-1]
, потому что все совпадения заменяются запятой, однако вам не нужна запятая вконец вашей строки.