簡體   English   中英

Python字符串大寫

[英]Python String 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()成為”我是 有沒有更好的辦法?

引號會干擾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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM