How do I move featuring artists from artists to say "feat. whoever" in the title?

I have my artists separated by a colon in the artists section; "Future:Young Thug:Drake." How then would I take those features ":Young Thug:Drake" and put them as "feat. Young Thug & Drake" in the song's title? It'd be like "Song name feat. Young Thug & Drake." If it was more than two it'd be "Song name feat. Young Thug, Drake, & Gunna." That's how I like it that's how I wish to convert it. Please and thank you for the help, in advance!

A complete title (not just parts) and a screenshot of real data would help.
If the solution turns out to become a regular expression, every character counts.
And should the result really be
Song name feat. Young Thug, Drake, & Gunna
or should it rather be
Song name feat. Young Thug, Drake & Gunna

For the second result I would suggest an action of the type "Format value" or Convert>Tag-Tag for TITLE
Format string: $regexp($replace($regexp(%title%,(.*?):(.*),$1feat. $2),:,', '),(.*)',' (.*?),$1 & $2)

An approach that would work is:
Make an action group that handles each case individually.
One format value action for 2 artists, one for 3, one for 4 up to however many you want to treat in this manner.

Within each of these actions of type Format value, you'd have to check if the regex for the chosen number of artists matches. If not, the title should be left unchanged.
That is currently fairly complicated to do in Mp3tag due to $regexp() returning the tested string in the case of no matches.

Here's the 2 artist example:
Action type: Format value
Field: TITLE
Format string:

$if($neql($regexp(%artist%,^('['^:']'+?):('['^:']'+?)$, feat. $1 & $2.),%artist%),%title%$regexp(%artist%,^('['^:']'+?):('['^:']'+?)$, feat. $1 & $2.),%title%)

You would then have to adjust and escape the regular expression and replacement string twice for each of these actions due to the $regexp() limitation described above.

Here are the regexes and replacement strings for 3 and 4 artists in case you have trouble with the regular expression side of things:

3 artists:
regex:

^([^:]+?):([^:]+?):([^:]+?)$

replacement string:

 feat. $1, $2, & $3.

4 artists:
regex:

^([^:]+?):([^:]+?):([^:]+?):([^:]+?)$

replacement string:

 feat. $1, $2, $3, & $4.

This sounds as though my suggestion does not work.
I would say: it works. And it even does not need separate actions for the number of artists - as long as they are separated by colons and the first one should be preceeded by a "feat." and the last one separated by &.
My suggestion only works because the regular expression returns the original string when there is no match. If consider this a useful feature and not a limitation.

I did not mean to imply that.
Also I seem to have interpreted @pechugo's question differently than you.

I read this as meaning the ARTIST tag, not as the artists already being part of the TITLE tag delimited by colons.

That is indeed a more flexible solution. I'd adjust my approach to also behave like this but after rereading the initial post, I think your solution is what pechugo sought.
One thing that might be a smart addition to your regex is adding a negative lookahead after the colon following the first capturing group to avoid treating parts of titles that contain : as artists: (?! ).
Example title:

Medley: the Confessions of R. Crumb/This Land Is Your Land/We Dog Waltz

When the target field is the same as the field that is matched against, this behavior can be useful. In my approach, a non-match would have led to the ARTIST tag being appended to the TITLE tag, which is usually unwanted.