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

Python3.9.6 Mac Big Sur环境re.sub报unterminated character set错误如何解决

报错原因
  • 核心触发点是正则语法错误:你写的字符集片段[*\]缺少闭合标记。你用反斜杠转义了],让它变成了字符集内部的普通匹配字符,没有额外的]来标识字符集结束,正则引擎解析到表达式末尾都没找到终止标记,就抛出了unterminated character set报错。
  • 额外逻辑问题:你当前的正则写法(Ñ)(Ó)(Ò)(xCA)(xca)要求这几个字符按顺序连续拼接才会匹配,无法单独匹配零散出现的多余字符,达不到清理文本的需求。
  • 其他隐藏隐患:代码没有导入re模块就调用re.sub,同时文件打开后没有执行关闭操作,后续也会触发其他报错;另外注意你代码里写的文件名是Comission.txt,比你描述的Commission.txt少了一个字母m,路径不对也会触发文件不存在报错。
修复方案

如果你的需求是删除文本中所有的Ñ、Ó、Ò、xCA、xca、*、]字符,修改后的可用代码如下:

import re

# 用with上下文管理器自动处理文件关闭
with open("/Applications/Python 3.9/Comission.txt", encoding="Latin-1") as file:
    commission = file.read()
# 正则用|分隔所有要匹配的内容,字符集把]放在最开头避免转义问题
commission_clean = re.sub(r'Ñ|Ó|Ò|xCA|xca|[]*]', '', commission)

如果你仅需要先解决语法报错,也可以直接给字符集补上闭合的]即可,不过这种写法仍然存在只能匹配连续字符的逻辑问题:

# 仅修复语法报错的正则示例
CommissionClean = re.sub(r'(Ñ)(Ó)(Ò)(xCA)(xca)([*\]])','',Commission)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 13:15:03