【问题标题】:Capitalize first letter in string if first character is not letter? [duplicate]如果第一个字符不是字母,则将字符串中的第一个字母大写? [复制]
【发布时间】:2013-06-11 08:08:22
【问题描述】:

我想将字符串中的第一个字母大写。该字符串将是一个散列(因此主要是数字),因此string.title() 将不起作用,因为像85033ba6c 这样的字符串将更改为85033Ba6C,而不是85033Ba6c,因为数字分隔单词,混淆@ 987654325@。我想将字符串的第一个字母大写,无论该字母在字符串中有多远。有这个功能吗?

【问题讨论】:

  • 你试过什么代码?
  • 有人在标记为重复之前阅读过帖子吗?
  • @njzk2 如果您将编码为十六进制数字的哈希中的字母大写,就像非常、非常、非常、非常、非常常见的那样,含义不会改变。
  • 有人在重新打开之前阅读过帖子吗?
  • @thg435 ...怎么样?接受的解决了问题。

标签: python string


【解决方案1】:

re.subcount 一起使用:

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

【讨论】:

  • 是的,我忘了count。非常整洁!
【解决方案2】:

在此答案中假设字符串中至少有一个字符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:]))

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

【讨论】:

    猜你喜欢
    • 2014-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-21
    • 2011-08-18
    • 2022-01-09
    • 1970-01-01
    相关资源
    最近更新 更多