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

tkb*_*kbx 3 python string

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

Ash*_*ary 10

使用re.sub具有count:

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


mgi*_*son 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:]))
Run Code Online (Sandbox Code Playgroud)

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