gpt4 book ai didi

python - 正则表达式和 unicode 文字

转载 作者:行者123 更新时间:2023-12-01 06:05:25 24 4
gpt4 key购买 nike

我想使用如下正则表达式从字符串(字节字符串或 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'

有人可以向我解释一下为什么会出现这种情况吗?

谢谢

彼得

最佳答案

因为标准(字节)字符串不是 Unicode 字符串。 Python 不知道它采用什么编码(或者根本不知道它是否是 Unicode!),因此无法确定特定的 Unicode 字符是否与其中的某些字符匹配。正如您所发现的,解决方案是使用 unicode() 函数告诉 Python 它是 Unicode。

关于python - 正则表达式和 unicode 文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8245392/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com