Try splitting the text by plusses
string() splits = messagepreDefine.split("+");
then your first element splits[0] is the starting text. Your second is field name you can replace. Third element is again text and so on.
Exception: if the text starts with + you need to replace first split. Test and play for a bit, you'll get it.
Alternative: parse with regex - it would go something like this: \\+.+\\+, but this is from memory, you should also tweak and test.