# Feature Request - Title Casing

**URL:** https://community.mp3tag.de/t/feature-request-title-casing/2086
**Category:** General Discussion
**Created:** [July 3, 2005, 9:23am UTC](https://community.mp3tag.de/t/feature-request-title-casing/2086 "2005-07-03T09:23:16Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![impius](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/i/3ab097/32.png) [@impius](https://community.mp3tag.de/u/impius)
#### Post date: [July 3, 2005, 9:23am UTC](https://community.mp3tag.de/t/feature-request-title-casing/2086/1 "2005-07-03T09:23:16Z")

</div>

I use the following routines in some mass rename scripts I wrote in Ruby

[http://zem.novylen.net/ruby/titlecase.rb](http://zem.novylen.net/ruby/titlecase.rb)

These routines implement "title case" per the Modern Language Association (full details in code comments). If you're not familiar with Ruby, I can help explain the code.

So for example, one could convert:

archers of loaf - all the nation's airports

-to-

Archers of Loaf - All the Nation's Airports

-rather than-

Archers Of Loaf - All The Nation's Airports

Thank you for the great product!

---

<div class="post-metadata">

### Author: ![dano](https://community.mp3tag.de/user_avatar/community.mp3tag.de/dano/32/6_2.png) [@dano](https://community.mp3tag.de/u/dano)
#### Post date: [July 3, 2005, 10:27am UTC](https://community.mp3tag.de/t/feature-request-title-casing/2086/2 "2005-07-03T10:27:11Z")

</div>

You can use regular expressions in Mp3tag, too. Have you tried that?

---

<div class="post-metadata">

### Author: ![impius](https://community.mp3tag.de/letter_avatar_proxy/v4/letter/i/3ab097/32.png) [@impius](https://community.mp3tag.de/u/impius)
#### Post date: [July 12, 2005, 5:01pm UTC](https://community.mp3tag.de/t/feature-request-title-casing/2086/3 "2005-07-12T17:01:25Z")

</div>

I have.. though I don't see how regex is going to perform intelligent title casing.

> [@](#):
>
> You can use regular expressions in Mp3tag, too. Have you tried that?
> 
> \<{POST\_SNAPBACK}\>

---

<div class="post-metadata">

### Author: ![dano](https://community.mp3tag.de/user_avatar/community.mp3tag.de/dano/32/6_2.png) [@dano](https://community.mp3tag.de/u/dano)
#### Post date: [July 12, 2005, 5:17pm UTC](https://community.mp3tag.de/t/feature-request-title-casing/2086/4 "2005-07-12T17:17:18Z")

</div>

Isn't your script full of RegEx?

for example, to get small prepositions and articles you can use

RegEx:  
\s(The|Tha|Da|To|Of|By|For|From|A|An|As|And|At)(?= )  
Replace with:  
$lower($0)
