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

如何用正则表达式在右括号后接字母/数字时添加空格?

解决方案

你可以分两步处理文本,先清理右括号前的多余空格,再给符合条件的右括号后添加空格,修改后的代码如下:

import re

input_text = "((PL_ADVB)dentro ). ((PL_ADVB)ñu)((PL_ADVB)    9u)"

# 第一步:去掉右括号前的所有空格
input_text = re.sub(r"\s*\)", ")", input_text)
# 第二步:在右括号后紧跟字母(含Unicode特殊字母)或数字时添加空格
input_text = re.sub(r"\)(?=[\p{L}\d])", ") ", input_text)

print(repr(input_text))

代码说明

  1. 第一步的正则\s*\):匹配右括号前的任意数量空格(包括0个),替换成纯右括号,解决原文本里)dentro )这种右括号后带空格的问题。
  2. 第二步的正则\)(?=[\p{L}\d]):
    • \):精准匹配右括号
    • (?=[\p{L}\d]):正向预查,确保右括号后面紧跟的是Unicode字母(\p{L}能匹配ñ这类特殊字母,覆盖大小写)或者数字(\d),不会影响右括号后是空格、标点的情况
    • 替换为) ,给符合条件的右括号后补上一个空格

运行这段代码后,输出就是你需要的:

"((PL_ADVB) dentro). ((PL_ADVB) ñu)((PL_ADVB) 9u)"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 15:00:49