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

**URL:** https://community.mp3tag.de/t/how-do-i-move-featuring-artists-from-artists-to-say-feat-whoever-in-the-title/71888
**Category:** Support
**Created:** [September 26, 2026, 11:56pm UTC](https://community.mp3tag.de/t/how-do-i-move-featuring-artists-from-artists-to-say-feat-whoever-in-the-title/71888 "2026-09-26T23:56:50Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![pechugo](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/p/eb9ed0/32.png) [@pechugo](https://community.mp3tag.de/u/pechugo)
#### Post date: [September 26, 2026, 11:56pm UTC](https://community.mp3tag.de/t/how-do-i-move-featuring-artists-from-artists-to-say-feat-whoever-in-the-title/71888/1 "2026-09-26T23:56:50Z")

</div>

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!

---

<div class="post-metadata">

### Author: ![ohrenkino](https://community.mp3tag.de/user_avatar/community.mp3tag.de/ohrenkino/32/4843_2.png) [@ohrenkino](https://community.mp3tag.de/u/ohrenkino)
#### Post date: [September 27, 2026, 6:32am UTC](https://community.mp3tag.de/t/how-do-i-move-featuring-artists-from-artists-to-say-feat-whoever-in-the-title/71888/2 "2026-09-27T06:32:19Z")

</div>

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)`

---

<div class="post-metadata">

### Author: ![Casual\_Tea](https://community.mp3tag.de/user_avatar/community.mp3tag.de/casual_tea/32/18886_2.png) [@Casual\_Tea](https://community.mp3tag.de/u/Casual_Tea)
#### Post date: [September 27, 2026, 4:21pm UTC](https://community.mp3tag.de/t/how-do-i-move-featuring-artists-from-artists-to-say-feat-whoever-in-the-title/71888/3 "2026-09-27T16:21:39Z")

</div>

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:

```auto
$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:

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

```

replacement string:

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

```

4 artists:  
regex:

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

```

replacement string:

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

```

---

<div class="post-metadata">

### Author: ![ohrenkino](https://community.mp3tag.de/user_avatar/community.mp3tag.de/ohrenkino/32/4843_2.png) [@ohrenkino](https://community.mp3tag.de/u/ohrenkino)
#### Post date: [September 27, 2026, 4:45pm UTC](https://community.mp3tag.de/t/how-do-i-move-featuring-artists-from-artists-to-say-feat-whoever-in-the-title/71888/4 "2026-09-27T16:45:44Z")

</div>

> [@Casual\_Tea](#):
>
> An approach that would work is:

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.

---

<div class="post-metadata">

### Author: ![Casual\_Tea](https://community.mp3tag.de/user_avatar/community.mp3tag.de/casual_tea/32/18886_2.png) [@Casual\_Tea](https://community.mp3tag.de/u/Casual_Tea)
#### Post date: [September 27, 2026, 8:12pm UTC](https://community.mp3tag.de/t/how-do-i-move-featuring-artists-from-artists-to-say-feat-whoever-in-the-title/71888/5 "2026-09-27T20:12:04Z")

</div>

> [@ohrenkino](#):
>
> This sounds as though my suggestion does not work.

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

> [@pechugo](#):
>
> I have my artists separated by a colon in the artists section

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

> [@ohrenkino](#):
>
> And it even does not need separate actions for the number of artists

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:

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

```

> [@ohrenkino](#):
>
> 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.

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.
