str.title() fails with words containing apostrophes

MRAB python at
Sun Mar 5 14:38:54 EST 2017

On 2017-03-05 17:54, Steve D'Aprano wrote:
> I'm trying to convert strings to Title Case, but getting ugly results if the
> words contain an apostrophe:
> py> 'hello world'.title()  # okay
> 'Hello World'
> py> "i can't be having with this".title()  # not okay
> "I Can'T Be Having With This"
> Anyone have any suggestions for working around this?
A bit of regex?

import re

def title(string):
     return re.sub(r"\b'\w", lambda m:, string.title())

More information about the Python-list mailing list