首页 文章

Python:更改大写字母

提问于
浏览
4

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

for example:

string = "YannickMorin"

我希望它成为yannick-morin

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

4 回答

  • 0

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

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

    你可以使用Regex

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

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

    >>> import re
    >>> re.sub(r'\B([A-Z])', r'-\1', "ThisIsMyText").lower()
    'this-is-my-text'
    
  • 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'
    

相关问题