re.error 与 Python 3.9.6 / Mac OS 大苏尔

re.error with Python 3.9.6 / Mac OS Big Sur

我正在尝试使用以下方法从文本 (Commission.txt) 中删除不需要的字符:

File = open("/Applications/Python 3.9/Comission.txt",encoding="Latin-1")
Commission=File.read()
CommissionClean = re.sub(r'(Ñ)(Ó)(Ò)(xCA)(xca)([*\])','',Commission)

但收到以下错误信息:

 raise source.error("unterminated character set",
re.error: unterminated character set at position 20

[*\] 应该是 [\*\]\[*\]

\ 使后面的 ] 成为字符集的一部分,而不是 字符集的成员。因此,解析器还在集合中包含 ),它仍在等待字符串结束时看到结束 ]

您需要对反斜杠本身进行转义,使其成为字符集的一部分。

CommissionClean = re.sub(r'(Ñ)(Ó)(Ò)(xCA)(xca)([*\])','',Commission)

这超出了使用原始字符串文字的范围,原始字符串文字可防止使用反斜杠来定义正则表达式解析器看到的字符串文字。