在字符串中/后保持大写

时间:2019-06-01 23:35:39

标签: python capitalization

我正试图为以下字符串加上标题:

"Men's L/S long sleeve"

我现在正在使用string.capwords,但无法正常工作。

例如:

x = "Men's L/s Long Sleeve"
y = string.capwords(x)
print(y)

输出:

Men's L/s Long Sleeve

但我想要

Men's L/S Long Sleeve(/之后的大写S)

有没有简单的方法可以做到这一点?

3 个答案:

答案 0 :(得分:2)

您可以在'/'上分割字符串,在每个子字符串上使用string.capwords,然后在'/'上重新加入:

'/'.join(string.capwords(s) for s in x.split('/'))

答案 1 :(得分:1)

用/分隔,然后在所有组件上分别输入关键词,然后重新加入组件

text = "Men's L/s Long Sleeve"
"/".join(map(string.capwords, text.split("/")))
Out[10]: "Men's L/S Long Sleeve"

答案 2 :(得分:0)

听起来/可能不是可靠的指示,表明需要使用大写字母。如果更可靠的指示实际上是字母是大写的,则可以尝试遍历每个字符串,而仅提取被提升为上字母的字母:

import string
x = "Men's L/S long sleeve"
y = string.capwords(x)
z = ''
for i,l in enumerate(x):
    if(l.isupper()):
        z += l
    else:
        z += y[i]

在类似这样的字符串上

"brand XXX"
"shirt S/M/L"
"Upper/lower"

您将获得:

"Brand XXX"
"Shirt S/M/L"
"Upper/lower"

我认为这可能比使用/作为指标更可取。