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

Python实现按句子拆分文本:避免数字后句号误拆换行

解决Python文本处理中句子正确换行的问题

你的问题出在直接替换所有句号,没区分句子结尾的句号和缩写(比如21.)里的句号。要实现只在真正的句子结尾换行,可以用正则表达式精准匹配目标句号。

解决方案代码:

import re

with open("new_all_data.txt", 'r') as text, open("new_all_data2.txt", "w") as new_text2:
    # 一次性读取全部内容,避免逐行处理的局限
    content = text.read()
    # 正则匹配:排除数字后的句号,只替换句子结尾的句号(后接空格、行尾或引号)
    processed_content = re.sub(r'(?<![0-9])\.(?=\s|$|")', '.\n', content)
    new_text2.write(processed_content)

正则说明:

  • (?<![0-9]):负向回顾断言,确保句号前面不是数字,避免替换像21.这类缩写里的句号
  • \.(?=\s|$|"):匹配句号,且句号后面是空格、行尾或者引号,这些都是句子结束的典型标志

如果之后遇到其他非数字开头的缩写(比如Mr.、Dr.),可以扩展正则的排除规则,比如把这些缩写加入负向断言:(?<![0-9]|Mr|Dr),根据实际需求调整即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 15:35:21