如何在Python中将字符串转换为标题大小写?

2024-06-12 04:20:57 发布

您现在位置:Python中文网/ 问答频道 /正文

示例:

HILO -> Hilo
new york -> New York
SAN FRANCISCO -> San Francisco

是否有库或标准方法来执行此任务?


Tags: 方法示例new标准sanyorkfranciscohilo
3条回答

为什么不直接从文档中使用^{}

>>> "they're bill's friends from the UK".title()
"They'Re Bill'S Friends From The Uk"

如果你真的想要PascalCase,你可以用这个:

>>> ''.join(x for x in 'make IT pascal CaSe'.title() if not x.isspace())
'MakeItPascalCase'
def capitalizeWords(s):
  return re.sub(r'\w+', lambda m:m.group(0).capitalize(), s)

re.sub可以使用一个函数来“替换”(而不仅仅是字符串,这是大多数人都熟悉的用法)。对于模式的每个匹配项,将使用一个re.Match对象调用此repl函数,结果(应该是字符串)将用作该匹配项的替换。

相同事物的更长版本:

WORD_RE = re.compile(r'\w+')

def capitalizeMatch(m):
  return m.group(0).capitalize()

def capitalizeWords(s):
  return WORD_RE.sub(capitalizeMatch, s)

这将预编译模式(通常被认为是良好的形式),并使用命名函数而不是lambda。

这一个总是以小写字母开头,也可以去掉非字母数字字符:

def camelCase(st):
    output = ''.join(x for x in st.title() if x.isalnum())
    return output[0].lower() + output[1:]

相关问题 更多 >