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

如何用Python正则实现句号后加空格且不处理数字小数点

Python 正则实现文本句号后空格自动补全

需求描述

  • 输入文本示例:First sentence.Second sentence. Third 3.4 sentence3.Fourth sentence. Fifth5. Sixth.
  • 预期输出示例:First sentence. Second sentence. Third 3.4 sentence3. Fourth sentence. Fifth5. Sixth.
  • 转换规则:句号两侧任意一侧为字母/非数字时,句号后补一个空格;句号两侧均为数字(即小数点位)时不做处理。

实现代码

import re

def format_sentence(text):
    # 匹配所有非小数点的句号,忽略句号后已有的空格,统一替换为句号加单个空格
    processed = re.sub(r'(?<!\d)\.\s*|\.(?!\d)\s*', r'. ', text)
    # 去除末尾多余的空格
    return processed.rstrip()

测试验证

# 传入示例输入
input_str = "First sentence.Second sentence. Third 3.4 sentence3.Fourth sentence. Fifth5. Sixth."
output_str = format_sentence(input_str)
print(output_str)

运行后输出与预期结果完全一致。

正则逻辑说明

  • (?<!\d)\.\s*:负向向后断言,匹配前面不是数字的句号,同时匹配句号后所有连续空格
  • |:或逻辑
  • \.(?!\d)\s*:负向向前断言,匹配后面不是数字的句号,同时匹配句号后所有连续空格
  • 两种场景合并覆盖了所有需要补空格的句号,自动排除了小数点位,同时统一处理了句号后原有的多余空格,保证最终格式一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 22:54:00