当前位置:  开发笔记 > 编程语言 > 正文

是否有一个字符串方法来在python中大写首字母缩略词?

如何解决《是否有一个字符串方法来在python中大写首字母缩略词?》经验,为你挑选了1个好方法。

这很好:

import string string.capwords("专有名称")'专有名称'

这不太好:

string.capwords("IRS")'Irs'

有没有字符串方法来做capwords以便它可以容纳首字母缩略词?



1> Evan Fosmark..:

这可能有效:

import re

def _callback(match):
    """ This is a simple callback function for the regular expression which is 
        in charge of doing the actual capitalization. It is designed to only 
        capitalize words which aren't fully uppercased (like acronyms).
    """
    word = match.group(0)
    if word == word.upper():
        return word
    else:
        return word.capitalize()

def capwords(data):
    """ This function converts `data` into a capitalized version of itself. This 
        function accomidates acronyms.
    """
    return re.sub("[\w\'\-\_]+", _callback, data)

这是一个测试:

print capwords("This is an IRS test.")    # Produces: "This Is An IRS Test."
print capwords("This is an I.R.S. test.") # Produces: "This Is An I.R.S. Test."

推荐阅读
小白也坚强_177
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有