Cela pourrait fonctionner:
import re
def _callback(match):
""" This is a simple callback function for the regular expression which is
in charge of doing the actual capitalization. It is designed to only
capitalize words which aren't fully uppercased (like acronyms).
"""
word = match.group(0)
if word == word.upper():
return word
else:
return word.capitalize()
def capwords(data):
""" This function converts `data` into a capitalized version of itself. This
function accomidates acronyms.
"""
return re.sub("[\w\'\-\_]+", _callback, data)
Voici un test:
print capwords("This is an IRS test.") # Produces: "This Is An IRS Test."
print capwords("This is an I.R.S. test.") # Produces: "This Is An I.R.S. Test."
IRS est une abréviation, pas un acronyme. Les acronymes sont (généralement) prononçables; et traditionnellement écrit sans ponctuation. –
Je crois que vous voulez dire l'initialisme, monsieur. Les abréviations sont des choses comme ne pas, ne peuvent pas, ne le feront pas. Les acronymes sont des choses comme VISA. Les initialismes sont des choses que vous ne pouvez pas prononcer. Mais nous nous éloignons. – mlissner