如果第一个字符不是字母,则首字母大写首字母串?

时间:2013-06-14 15:51:14

标签: python string

我想将字符串中的第一个字母大写。该字符串将是一个哈希值(因此主要是数字),因此string.title()将不起作用,因为85033ba6c之类的字符串将更改为85033Ba6C,而不是85033Ba6c,因为这个数字分隔了单词,令人困惑title()。我想把字符串的第一个字母大写,不管字母到字符串有多远。这有功能吗?

2 个答案:

答案 0 :(得分:10)

re.subcount一起使用:

>>> strs = '85033ba6c'
>>> re.sub(r'[A-Za-z]',lambda m:m.group(0).upper(),strs,1)
'85033Ba6c'

答案 1 :(得分:6)

在此答案中假设字符串中至少有一个字符isalpha将返回True(否则,这会引发StopIteration

i,letter = next(x for x in enumerate(myhash) if x[1].isalpha())
new_string = ''.join((myhash[:i],letter.upper(),myhash[i+1:]))

在这里,我挑选出字符串中第一个字母字符的字符(和索引)。我将该字符转换为大写字符,然后将其加入字符串的其余部分。