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

如何用单条Regex语句实现标点字符两侧添加空格的映射功能?

用单条正则表达式简化标点加空格的操作

当然可以!你现在的代码多次调用re.sub确实有点繁琐,完全可以用一条正则表达式一次性完成所有标点的替换,让代码更简洁易读。

优化后的实现

import re
def add_spaces_to_punctuation(input_text):
    return re.sub(r'([.,;:()])', r' \1 ', input_text)

原理说明

  • 正则表达式([.,;:()]):用字符类把你需要处理的所有标点(. , ; : ( ))包含进来,同时用括号创建一个捕获组,用来保存匹配到的具体标点字符。
  • 替换字符串r' \1 ':其中\1是对捕获组的反向引用,代表刚才匹配到的那个标点,这样就自动在它的前后各添加一个空格,一次替换就搞定所有目标标点。

额外优化:处理重复空格

如果你的输入文本里可能已经存在标点旁边有空格的情况,替换后会出现多个连续空格,你可以再增加一步把多个空格合并成单个空格,同时去掉首尾的空格:

import re
def add_spaces_to_punctuation(input_text):
    # 给目标标点添加前后空格
    text = re.sub(r'([.,;:()])', r' \1 ', input_text)
    # 合并连续空格并去除首尾空格
    return re.sub(r'\s+', ' ', text).strip()

这样处理后,比如输入Hello, this is a (test) string.会被转换成Hello , this is a ( test ) string .,格式更规整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 07:29:31