Python:更改大写字母

Python:更改大写字母,python,camelcasing,Python,Camelcasing,我不知道如何在python中替换字符串中的第二个大写字母 例如: string = "YannickMorin" 我想让它变成yannick morin 到目前为止,我可以通过执行string.lower()使其全部小写,但如何在找到第二个大写字母时加破折号。您可以使用正则表达式 >>> import re >>> split_res = re.findall('[A-Z][^A-Z]*', 'YannickMorin') ['Yannick', 'Mor

我不知道如何在python中替换字符串中的第二个大写字母

例如:

string = "YannickMorin" 
我想让它变成yannick morin

到目前为止,我可以通过执行string.lower()使其全部小写,但如何在找到第二个大写字母时加破折号。

您可以使用正则表达式

>>> import re
>>> split_res = re.findall('[A-Z][^A-Z]*', 'YannickMorin')
['Yannick', 'Morin' ]
>>>'-'.join(split_res).lower()

这更像是正则表达式的任务:

result = re.sub(r'[a-z]([A-Z])', r'-\1', inputstring).lower()
演示:

lower()。你需要更换它。。一种解决办法是:

strAsList = list(string)
strAsList[0] = strAsList[0].lower()
strAsList[7] = strAsList[7].lower()
strAsList.insert(7, '-')
print (''.join(strAsList))

查找不在单词开头的大写字母,并在前面插入破折号。然后将所有内容转换为小写

>>> import re
>>> re.sub(r'\B([A-Z])', r'-\1', "ThisIsMyText").lower()
'this-is-my-text'

您可以使用
re
模块将
re.sub
所有大写字母设置为
-\1
,然后将所有字母设置为小写。或者使用
re.split
在每个大写字母处拆分,然后使用
'-'。连接
,然后转换为小写。这里有一个类似的例子:OP想要从标题转换为虚线。
>>> import re
>>> re.sub(r'\B([A-Z])', r'-\1', "ThisIsMyText").lower()
'this-is-my-text'