Skip to main content
 首页 » 编程设计

python之将标点符号和空格拆分的字符串的每个标记的首字母大写

2025年05月04日30myhome

我正在尝试为以下字符串命名:

“男士 L/s 纽扣式”

我现在正在使用 string.capwords,但它没有按预期工作。

例如:

x = "Men's L/s button-up" 
y = string.capwords(x) 
print(y) 

输出:

男士 L/s 纽扣式

但我想要:

男士 L/S Button-Up(/后为大写 S,- 后为大写 U)

更一般地说,如何确保空格或标点符号后的所有字母都大写?

这是后续的:

Keep uppercase after / in a string

请您参考如下方法:

string.capwords 对此不起作用,因为在内部,它使用 str.split() 生成标记 ( docs )。 str.split() 只能在出现空格(默认行为)或使用用户指定的字符/字符串 ( docs) 时拆分。如果指定了字符串,则将其视为一个整体,而不是分隔的字符。

为了实现你想要的,我会使用正则表达式,例如:

import re 
 
x = "Men's L/s button-up" 
y = re.sub(r'[\w]+', lambda m: m.group(0).capitalize(), x) 
print(y) 
# "Men'S L/S Button-Up" 

re.sub ( docs ) 可用于替换给定字符串中的子字符串。第二个参数是一个接受 match object 的函数。参数并返回替换字符串(在这种情况下,我们将完整匹配项大写)。

如果您无意中遇到了这个问题,请务必查看下面的@Christian 回答,因为它提供了一种很好的拆分字符串的替代方法:)