正则表达式Python-仅保留ASCII和版权符号

正则表达式Python-仅保留ASCII和版权符号,python,regex,Python,Regex,我有以下功能仅保留ASCII字符: import re def remove_special_chars(txt): txt = re.sub(r'[^\x00-\x7F]+', '', txt) return txt 但现在我还想保留版权符号()。我应该向图案添加什么?将版权符号的十六进制\xA9()添加到您的匹配组: txt = re.sub(r'[^\x00-\x7F\xA9]+', '', txt) 从Python3.8开始,Unicode字符名可以通过\N{nam

我有以下功能仅保留ASCII字符:

import re

def remove_special_chars(txt):
    txt = re.sub(r'[^\x00-\x7F]+', '', txt)
    return txt

但现在我还想保留版权符号()。我应该向图案添加什么?

将版权符号的十六进制
\xA9
()添加到您的匹配组:

txt = re.sub(r'[^\x00-\x7F\xA9]+', '', txt)

从Python3.8开始,Unicode字符名可以通过
\N{name}
转义

所以版权符号可以像
r'\N{copyright SIGN}'
那样使用

就你而言

import re
s = "Python® Copyright ©2001-2019"
re.sub(r'[^\x00-\x7F\N{COPYRIGHT SIGN}]+', '', s)
这给

'Python Copyright ©2001-2019'

如您所见,“®”已被删除。

版权符号为
Dec:169 Hex:A9