[issue7008] str.title() misbehaves with apostrophes
Raymond Hettinger
report at bugs.python.org
Mon Sep 28 23:02:24 CEST 2009
Raymond Hettinger <rhettinger at users.sourceforge.net> added the comment:
I'm still researching what other languages do. MS-Excel matches what
Python currently does. Django uses the python version and then fixes-up
apostrophe errors:
title=lambda value: re.sub("([a-z])'([A-Z])", lambda m:
m.group(0).lower(), value.title()).
It would also be nice to handle hyphenates like "xray" --> "X-ray".
Am thinking that it would be nice if the user could pass-in an optional
argument to list all desired characters to prevent transitions (such as
apostrophes and hyphens).
A broader solution would be to replace string.capwords() with a more
sophisticated set of rules that generally match what people are really
trying to accomplish with title casing:
http://aitech.ac.jp/~ckelly/midi/help/caps.html
http://search.cpan.org/dist/Text-Capitalize/Capitalize.pm
"Headline Style" in the Chicago Manual of Style or
Associate Pressd Stylebook:
http://grammar.about.com/b/2008/04/11/rules-for-capitalizing-the-words-in-a-title.htm
Any such attempt at a broad solution needs to provide ways for users to
modify the list of exception words and options for quoted text.
----------
_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue7008>
_______________________________________
More information about the Python-bugs-list
mailing list