gpt4 book ai didi

Python 相同的字符不等于

转载 作者:太空狗 更新时间:2023-10-29 18:02:52 24 4
gpt4 key购买 nike

我的数据库中有文本。我从 xhr 向我的 View 发送了一些文本。函数 find 没有找到一些 unicode 字符。

我想使用以下方式查找选定的文本:

text.find(selection)

但有时变量“selection”包含这样的字符:

ę  # in xhr unichr(281)

而在变量“文本”中有:

ę  # in db has two chars unichr(101) + unichr(808)

它们只是同一事物的不同形式。如何使 .find 在这里更可靠地工作?

最佳答案

在这里unicodedata.normalize可能会帮助你。

基本上,如果您规范化来自数据库的数据,并将您的选择规范化为相同的形式,那么在使用 str.findstr.__contains__ 时应该会有更好的结果code>(即 in)、str.index 和 friend 。

>>> u1 = chr(281)
>>> u2 = chr(101) + chr(808)
>>> print(u1, u2)
ę ę
>>> u1 == u2
False
>>> unicodedata.normalize('NFC', u2) == u1
True

NFC 代表Normal Form Composed 形式。您可以阅读 here有关其他可能形式的一些描述。

关于Python 相同的字符不等于,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36137602/

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