Python函数将camelCase转换为Sentence Case
Posted
技术标签:
【中文标题】Python函数将camelCase转换为Sentence Case【英文标题】:Python function to convert camelCase to Sentence Case 【发布时间】:2022-01-23 09:31:32 【问题描述】:我想将我的 camelCaseSentence 转换为 Sentence Case。
例子:
字符串:'sarimChaudharyIsMyName'
所以这个的输出应该是……
字符串:'Sarim Chaudhary 是我的名字'
【问题讨论】:
在我看来像标题大小写 【参考方案1】:这是一个使用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
需要再次读取整个字符串。我想单独处理第一个字符的大小写应该会更好。
@mozway 好点,我也添加了你的版本。
一些测试表明title
大约需要 10% 的时间,您的第二个版本要快约 10%。在所有情况下优化不一定重要,但最好注意;)【参考方案2】:
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
【讨论】:
以上是关于Python函数将camelCase转换为Sentence Case的主要内容,如果未能解决你的问题,请参考以下文章
使用 JavaScript 将 kebab-case 转换为 camelCase
如何将 NSString 从 CamelCase 转换为 TitleCase,将“playerName”转换为“Player Name”?