在 / 之后在字符串中保留大写字母
Keep uppercase after / in a string
我正在尝试为以下字符串命名:
"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)
有没有简单的方法可以做到这一点?
按 / 拆分,然后 运行 在所有组件上分别使用 capwords,然后重新加入组件
text = "Men's L/s Long Sleeve"
"/".join(map(string.capwords, text.split("/")))
Out[10]: "Men's L/S Long Sleeve"
您可以在“/”处拆分字符串,在每个子字符串上使用 string.capwords,然后在“/”处重新加入:
import string
'/'.join(string.capwords(s) for s in "Men's L/S long sleeve".split('/'))
听起来 /
可能不是需要大写字母的可靠指标。如果更可靠的指标实际上是该字母最初是大写的,您可以尝试遍历每个字符串并仅提取提升为大写的字母:
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"
我认为这可能比使用 /
作为指标更可取。
我正在尝试为以下字符串命名:
"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)
有没有简单的方法可以做到这一点?
按 / 拆分,然后 运行 在所有组件上分别使用 capwords,然后重新加入组件
text = "Men's L/s Long Sleeve"
"/".join(map(string.capwords, text.split("/")))
Out[10]: "Men's L/S Long Sleeve"
您可以在“/”处拆分字符串,在每个子字符串上使用 string.capwords,然后在“/”处重新加入:
import string
'/'.join(string.capwords(s) for s in "Men's L/S long sleeve".split('/'))
听起来 /
可能不是需要大写字母的可靠指标。如果更可靠的指标实际上是该字母最初是大写的,您可以尝试遍历每个字符串并仅提取提升为大写的字母:
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"
我认为这可能比使用 /
作为指标更可取。