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

如何用Python将段落中每个句子首词首字母转为小写?

Python实现段落多句首单词首字母小写(保留专有名词大写)

直接用正则表达式匹配段落中所有句子开头的单词,将其首字母转为小写即可,无需逐个拆分句子再拼接。以下是实现代码:

import re

def lowercase_sentence_starts(text):
    # 匹配文本开头或句末标点(.?!)后空格起始的单词
    pattern = r'(^|(?<=[.!?]\s))([A-Z][a-zA-Z\']*)'
    # 将匹配到的单词首字母转为小写
    return re.sub(pattern, lambda match: match.group(1) + match.group(2).lower(), text)

# 测试示例
original = "This is a example sentence. Please help me. I don't want this situation. In Berlin we have a great time."
result = lowercase_sentence_starts(original)
print(result)

代码说明

  • 正则表达式(^|(?<=[.!?]\s)):定位两种合法的句子起始位置——文本开头,或者句号、感叹号、问号加空格的后面(正向断言,不占用匹配字符)
  • ([A-Z][a-zA-Z\']*):匹配以大写字母开头的单词,支持包含撇号的特殊单词(比如I don't里的I)
  • lambda替换逻辑:保留起始位置的原有字符(比如句末的句号空格),仅将捕获到的单词首字母转为小写,不影响句中其他大写的专有名词(如示例中的Berlin)

扩展支持

如果需要处理更多特殊句末符号(比如分号),只需调整正则的断言部分,例如:

pattern = r'(^|(?<=[.!?;]\s))([A-Z][a-zA-Z\']*)'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 13:35:40