Я никогда не работал с красным смещением, но с помощью регулярных выражений я могу вам помочь:
"(type|cont|money)<=>([^<,]+)(,([^<,]+),[^<,]+,([^<,]+))?"
Захват 4 в строке, которую вы положили в качестве примера, он захватит все, что вам нужно, даже исключая 0:
Группа 1: деньги
Группа 2: 3100
Группа 3: 4000,0, месяц
Группа 4: 4000
Группа 5: месяц
Если у вас есть проблемы, сообщите мне.
Если вы хотите освоить свои навыки регулярных выражений, я могу научить вас, это будет полезно.