You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何将字符串转为标题格式且保证撇号后字母为小写

问题原因

str.title()的规则是将每个单词的首字母大写,其余字母小写,但它会把撇号'后面的字符识别为新单词的首字母,所以才会出现Murang'A的不符合预期结果。

解决方案

方法1:使用string.capwords(适配多单词场景)

string.capwords会先将所有字符转为小写,再将空格分隔的每个单词的首字母转为大写,不会把撇号后的字符识别为新单词,完全符合需求,示例代码如下:

import string

sr = "MURANG'A"
res = string.capwords(sr)
print(res) # 输出:Murang'a

方法2:手动处理(适配单单词场景,无需导入依赖)

如果你的使用场景都是单个单词,直接手动处理首字母大写、其余字符小写即可:

sr = "MURANG'A"
res = sr[0].upper() + sr[1:].lower()
print(res) # 输出:Murang'a

方法3:正则自定义实现(灵活适配复杂规则)

如果需要自定义更多标题转换规则,或者需要处理非空格分隔的单词场景,可以用正则匹配所有单词首字母做大写处理:

import re

# 支持多单词带撇号的场景
sr = "MURANG'A O'CONNOR"
res = re.sub(r'\b\w', lambda x: x.group().upper(), sr.lower())
print(res) # 输出:Murang'a O'connor

内容的提问来源于stack exchange,提问作者user308827

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 12:27:04