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

如何将开头含空白字符的句子首字母大写

如何将开头含空白字符的句子首字母大写

我太懂你碰到的这个坑了!当字符串开头是换行、空格这类空白字符时,直接用my_str.capitalize()确实完全没用——因为这个方法只会把字符串的第一个字符转成大写,可第一个字符是空白的话,后面真正要大写的首字母根本不会被处理到。

给你两个实用的解决办法,你可以按需选:

  • 方法一:拆分空白和内容再拼接
    思路很简单:先把开头所有的空白字符(换行、空格、制表符都能匹配)提取出来,剩下的内容正常用capitalize()处理,最后再把空白拼回去就行。用正则表达式就能轻松实现:

    import re
    
    my_str = "\n\n\n\n first letter is to be capital"
    # 匹配开头的空白部分和后续的正文内容
    match_result = re.match(r'^(\s*)(.*)', my_str)
    if match_result:
        leading_whitespaces = match_result.group(1)
        main_content = match_result.group(2)
        # 拼接空白和处理后的正文
        final_str = leading_whitespaces + main_content.capitalize()
    print(final_str)  # 输出就是你想要的"\n\n\n\n First letter is to be capital"
    
  • 方法二:正则直接替换第一个字母
    这个更简洁,直接定位字符串里的第一个小写字母,把它替换成大写版本就搞定,一次到位:

    import re
    
    my_str = "\n\n\n\n first letter is to be capital"
    final_str = re.sub(r'([a-z])', lambda m: m.group(1).upper(), my_str, count=1)
    print(final_str)
    

    这里的count=1是关键,它能保证我们只替换第一个找到的小写字母,不会误改后面的内容。

两种方法都能完美解决你的问题,要是你不想用正则,也可以手动遍历字符串找第一个字母的位置,但正则的方式显然更高效省心~

备注:内容来源于stack exchange,提问作者nadine

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 14:37:56