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

Python正则替换:仅为单行无句号字符串添加句号

实现单行无句号字符串自动添加句号的方案

方案一:结合正则表达式实现

可以通过正则的负向前瞻同时满足「单行」和「末尾无句号」两个条件,直接完成替换:

import re

def add_period(s):
    # 匹配单行且末尾无句号的字符串,替换为原内容加句号
    return re.sub(r'^(?!.*\n)(.*[^.])$', r'\1.', s)

正则表达式说明:

  • ^:锚定字符串起始位置
  • (?!.*\n):负向前瞻断言,确保整个字符串中不存在换行符(即单行内容)
  • (.*[^.])$:匹配从起始到结尾的内容,且最后一个字符不是句号
  • \1.:将匹配到的内容后追加句号

测试验证:

  • 单行无句号输入:"This is a sentence" → 输出 "This is a sentence."
  • 单行带句号输入:"This is a sentence." → 输出不变
  • 多行输入:"Item 1\nItem 2\nItem 3" → 输出不变
  • 单行带其他标点输入:"Hello world!" → 输出不变(若需要给所有非句号结尾的单行加句号,此正则依然适用)

方案二:直接逻辑判断(更高效直观)

如果需求不需要复杂的正则匹配,直接通过字符串方法判断会更高效:

def add_period(s):
    # 检查是否是单行,且末尾没有句号
    if '\n' not in s and not s.endswith('.'):
        return s + '.'
    return s

这种方式避开了正则的开销,对于简单场景更友好,效果和正则方案完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 17:45:07