Python String Capitalize

时间:2017-05-22 17:11:26

标签: python capitalize

from string import capwords

t = "\"i'm happy,\" said tanby"
sText = t.split()
rText = []

for str in sText:
    if '\"' in str[0]:
        t = capwords(str, sep='\"')
        rText.append(t)
    else:
        t = capwords(str)
        rText.append(t)

print(' '.join(rText))

>>> "I'm Happy," Said Tanby
     ^   ^       ^    ^

忽略报价并大写。 使用title()时,变为“我是,当使用capwords()时,变为”我是。 还有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

引号会干扰capwords算法。使用带有单引号的re.sub模式可以修复它。正则表达式匹配一个或多个\w(单词字符)或单引号。每个匹配都传递给lambda函数并大写以进行替换。

>>> import re
>>> s='"i\'m happy," said tanby'
>>> print(re.sub(r"\b[\w']+\b",lambda m: m.group().capitalize(),s))
"I'm Happy," Said Tanby