我想使用这样的正则表达式从字符串(字节字符串或 unicode 字符串)中删除一些字符:
pattern = re.compile(ur'\u00AE|\u2122', re.UNICODE)
如果字符被指定为 unicode 文字,则生成的正则表达式不能在字节字符串上正常工作。
q = 'Canon\xc2\xae EOS 7D'
pattern.sub('', q) # 'Canon\xc2 EOS 7D'
但是,如果我将替换的参数转换为 unicode 字符串,它会按预期工作......
pattern.sub('', unicode(q)) # u'Canon EOS 7D'
有人可以向我解释为什么会这样吗?
谢谢,
彼得