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的主要内容,如果未能解决你的问题,请参考以下文章

给定的字符串没有在python中转换成camelCase?

使用 JavaScript 将 kebab-case 转换为 camelCase

在emacs中从camelcase转换为_

将连字符转换为驼峰式 (camelCase)

如何将 NSString 从 CamelCase 转换为 TitleCase,将“playerName”转换为“Player Name”?

将返回的 JSON 对象属性转换为(较低的第一个)camelCase