You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python字符串标题格式化问题:保留数字后字母小写

解决方案

原代码里的title()方法会把每个“单词”的首字母大写,这里的“单词”是指以非字母开头的连续序列,所以3g会被当成一个单词,导致g被转成大写G,不符合需求。要实现数字后紧跟的g保持小写、其他单独的小写字母转大写的效果,可以用以下两种方法:

方法一:遍历字符逐个处理

通过遍历字符串的每个字符,判断当前小写字母前是否为数字,以此决定是否转大写:

s = input().strip()
output = []
prev_char_is_digit = False

for char in s:
    # 如果当前是小写字母且前一个字符不是数字,转大写
    if char.islower() and not prev_char_is_digit:
        output.append(char.upper())
    else:
        output.append(char)
    # 更新前一个字符是否为数字的标记
    prev_char_is_digit = char.isdigit()

print(''.join(output))

方法二:正则表达式替换

利用正则的负向零宽断言,匹配前面不是数字的小写字母,将其替换为大写:

import re

s = input().strip()
# (?<!\d) 表示前面不能是数字,匹配符合条件的小写字母并转大写
output = re.sub(r'(?<!\d)[a-z]', lambda match: match.group().upper(), s)
print(output)

两种方法输入1 w r 3g时,都会输出1 W R 3g,满足需求。

内容的提问来源于stack exchange,提问作者Karan Prem

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 03:18:15