Python:更改大写字母

时间:2015-11-06 17:52:55

标签: python camelcasing

我无法弄清楚如何在python中替换字符串中的第二个大写字母。

例如:

string = "YannickMorin" 

我希望它成为yannick-morin

到目前为止,我可以通过 string.lower()将其全部小写,但是当它找到第二个大写字母时如何设置短划线。

4 个答案:

答案 0 :(得分:5)

您可以使用Regex

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

答案 1 :(得分:1)

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

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

演示:

>>> import re
>>> inputstring = 'YannickMorin'
>>> re.sub(r'[a-z]([A-Z])', r'-\1', inputstring).lower()
'yannic-morin'

答案 2 :(得分:1)

查找不在单词开头的大写字母,然后插入短划线。然后将所有内容转换为小写。

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

答案 3 :(得分:0)

lower()方法不会更改字符串,它返回需要打印或分配给另一个变量的值。你需要更换它..一个解决方案是:

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