import re
def custom_title(s):
re.sub(r"(?:(?<=\W)|^)\w(?=\w)", lambda x: x.group(0).upper())
custom_title('luis XIV de francia')
# > 'Luis XIV De Francia'
regex's sub方法使其适用于带有点状标记的较大字符串
custom_title('luis XIV de francia, something. foo-bar')
# > 'Luis XIV De Francia, Something. Foo-Bar'
title()
方法不知道'xiv'是罗马数字。最好的方法是分割字符串,然后title()
相关片段,保持XIV部分不变,然后将片段连接在一起。我认为程序不会意识到一组字符可能是罗马数字虽然解释中提到了罗马数字,但我想让你明白这里发生了什么。这会将原始字符串拆分为空格,如果它是小写字符串,则对其应用
title()
。如果没有,就别管它。最后,使用一个空格作为连接符连接各个部分,从而组装生成的字符串您可以使用
regular expressions
查找任何单词的第一个字母,然后upper()
查找它:regex's sub
方法使其适用于带有点状标记的较大字符串这里还有另一个版本也可以大写单字母单词:
相关问题 更多 >
编程相关推荐