【发布时间】:2022-01-23 09:31:32
【问题描述】:
我想将我的 camelCaseSentence 转换为 Sentence Case。
例子:
字符串:'sarimChaudharyIsMyName'
所以这个的输出应该是……
字符串:'Sarim Chaudhary 是我的名字'
【问题讨论】:
-
在我看来像标题大小写
标签: python python-3.x string
我想将我的 camelCaseSentence 转换为 Sentence Case。
例子:
字符串:'sarimChaudharyIsMyName'
所以这个的输出应该是……
字符串:'Sarim Chaudhary 是我的名字'
【问题讨论】:
标签: python python-3.x string
这是一个使用title() 函数帮助的简单正则表达式方法:
inp = 'sarimChaudharyIsMyName'
output = re.sub(r'(?<=[a-z])(?=[A-Z])', ' ', inp).title()
print(output) # Sarim Chaudhary Is My Name
我们可以通过避免title() 调用来稍微提高性能,而只是将第一个字符大写:
inp = 'sarimChaudharyIsMyName'
output = re.sub(r'(?<=[a-z])(?=[A-Z])', ' ', inp)
output = output[0].upper() + output[1:]
print(output) # Sarim Chaudhary Is My Name
【讨论】:
sub之后调用title需要再次读取整个字符串。我想单独处理第一个字符的大小写应该会更好。
title 大约需要 10% 的时间,您的第二个版本要快约 10%。在所有情况下优化不一定重要,但最好注意;)
def camel_to_Sentence_Case(a):
temp = a[0].upper()
for i in a[1:]:
if i.isupper():
temp+= ' '+i
else:
temp+=i
return temp
【讨论】: